Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
#1

Загрузка нативной библиотеки - Программирование Android

08.02.2015, 18:57. Просмотров 344. Ответов 5
Метки нет (Все метки)

Здравствуйте!
У меня есть библиотека, в которой содержаться нативные функции для разных классов... Когда класс один, то мне все ясно, я загружаю ее так внутри класса:
Java
1
2
3
static {
        System.loadLibrary("EasyTools");
    }
Но если классов, использующих эту библиотеку несколько, то как тогда загрузить ее, чтобы гарантировать один экземпляр в памяти? Писать такую конструкцию в каждом классе?
Вопрос нубский, но мне не понятен...
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2015, 18:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Загрузка нативной библиотеки (Программирование Android):

получение структуры из нативной библиотеки по указателю - C#
Для этого использую Marshal.PtrToStructure. Но проблема в том что структура, которую я получаю устарела, то есть в ней поля теперь...

Загрузка библиотеки! - C#
Всем привет нужна помощь! Есть библиотека Ionic.Zip.dll Написал программу которая использует эту библиотеку! (причем файл dll Считывается...

Загрузка ресурсов из библиотеки - C++ Builder
Каким образом загрузить картинку из библиотеки в ресурсы запущенного приложения?

Динамическая загрузка библиотеки - C++
lab2.dll #include <windows.h> #include <math.h> extern "C" __declspec(dllexport) double MyFunc(double X, double Y) { return...

Загрузка -выгрузка dll библиотеки - C#
Работаю с оболочкой - надо добавить контекстное меню в системное! Нашёл отличный пример - компилирую его(в свойствах проекта поставил...

CodeIgniter загрузка своей библиотеки - PHP
Обычно загружают свою библиотеку в CI так: $this->load->library("myLib",array("a" =>"a","b"=>"b")); Здесь мы грузим ее с...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
08.02.2015, 20:32 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Главное - не бояться
http://stackoverflow.com/a/8437502
1
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
08.02.2015, 20:54 #3
мне тоже интересно! Выходит что просто нужно для каждой библиотек сделать свой класс-обвертку?
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
08.02.2015, 21:28  [ТС] #4
Цитата Сообщение от Tester64 Посмотреть сообщение
мне тоже интересно! Выходит что просто нужно для каждой библиотек сделать свой класс-обвертку?
Это хороший вариант тоже, но не всегда подходит по архитектуре приложения, чтобы группировать все в один класс.
Поэтому у меня нативные функции из одной библиотеки разбросаны по разным классам как статические.

Добавлено через 46 секунд
Цитата Сообщение от Armagedo Посмотреть сообщение
Главное - не бояться
С английским не очень, поэтому тему конкретную не нашел, а читать трудно, когда не знаешь где)
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
09.02.2015, 00:15 #5
Цитата Сообщение от contedevel Посмотреть сообщение
Поэтому у меня нативные функции из одной библиотеки разбросаны по разным классам как статические.
А зачем??? ИМХО проще сделать на либу один гиганский класс со всеми методами без "перевода" - просто "оболочку". А другие будут использовать ее методы по мере необходимости... Кажется такое сделано даже в SQLite, а там десятки методов выходят из одной либы...
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
09.02.2015, 00:46  [ТС] #6
Цитата Сообщение от Tester64 Посмотреть сообщение
А зачем???
Чтобы не делать лишний переброс вызовов, потому что в библиотеку вынесены некоторые функции из разных классов, совершенно не связанных с друг другом (много библиотек делать идея абсурдная), цепочные вызовы - лишнее замедление при очень частом обращении, а оно есть... поэтому для удобства пользователя классы построены, чтобы быть интуитивно понятными и быстро работать (внутри библиотеки иерархия аналогичная, так что проблем не возникает с поддержкой)
Цитата Сообщение от Tester64 Посмотреть сообщение
SQLite
В Android реализована обертка на SQL, как и на другие нативные библиотеки... А я сам разрабатываю библиотеку на Java и важно сохранить прозрачную архитектуру для пользователя, которому не суть какая реализация функции вызывается... В общем долго объяснять...очередной флуд будет
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2015, 00:46
Привет! Вот еще темы с ответами:

Загрузка библиотеки и использованием ее функций - C++
Добрый день уважаемые форумчане. Как всегда не нашел подходящего раздела, поэтому пишу тут. Есть turbo c++ версии 3.0. и есть...

Динамическая загрузка библиотеки вместо статической - Delphi
Помогите использовать динамическую загрузку библиотеки вместо статической.. unit Unit1; interface uses Winapi.Windows,...

создание библиотеки dll и динамическая загрузка - C++
Есть какие-нибудь статьи, чтобы изучить, как создать и загрузить библиотеку? А то на сайте msdn.microsoft дают такой код, который с...

Подключение нативной dll к проекту - C#
Создал C# проект консольный. В одном решении с ним создал win32 пустой проект, указал,что проект пустой и его считать dll библиотекой....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.02.2015, 00:46
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru