Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 1
Регистрация: 29.01.2015
Сообщений: 72

Как сделать общий для нескольких приложений код

09.02.2017, 20:43. Показов 1094. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть несколько гомогенных приложений, написанных на Qt/C++. Приложения очень похожие, и каждое использует для коммуникации с Android набор вызовов, которые размещены в файле <project>/android/src/com/myfirm/myapp<NN>/Interface.java. У каждого приложения свой такой файл, отличаются снаружи только маршруты - вместо <NN> присутствует номер приложения, то есть myapp01, myapp02 и т.д. А также внутри каждого Intarface.java первая строка содержит

Java
1
package com.myfirm.myapp<NN>
где <NN> тот же номер приложения, что и в маршруте этого файла. В остальном содержимое файлов Interface.java у разных приложений совершенно идентично. Они содержат несколько классов, в частности ловушки вещательных сообщений, например

Java
1
2
3
4
class RegisterReceiverRunnable implements Runnable
{
...
}
и подобное, а также интерфейс для вызова методов С++ в виде

Java
1
2
3
4
5
class NativeCall
{
    public static native void getData( ... );
    public static native void setData( ... );
}
а также класс для отработки вызовов из С++

Java
1
2
3
4
public class Interface extends org.qtproject.qt5.android.bindings.QtActivity
{
...
}
в котором методы, вызываемые из С++ являются public static, так уж сделано в Qt Extras.

Ну и, наконец, файлы Interface.java вместе с их маршрутами лежат в разных каталогах проектов приложений, где они используются.

Теперь вопрос - поскольку я не силён в организации структуры приложения на Dalvik/Java, я понятия не имею, как объединить содержимое файлов Interface.java, чтобы при изменении кодов интерфейсов мне не приходилось их менять в каждом приложении. На С/С++ я бы просто сделал все Interface.java такими:

C
1
2
package com.myfirm.myapp01
#include <commoncode.java>
C
1
2
package com.myfirm.myapp02
#include <commoncode.java>
и т.д., вынес бы весь одинаковый код в commoncode.java и настроил маршруты, чтобы компилятор его находил. Но у Java нет #include, что очень глупо.

Есть ли возможность получить желаемое, либо придётся мириться и не забывать править все Interface.java при внесении изменений?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.02.2017, 20:43
Ответы с готовыми решениями:

Общий семафор для нескольких java-приложений
Здравствуйте. Имеются несколько работающих через командные строки однотипных java-приложений. Они подключаются к серверу через...

Как сделать общий объект класса в нескольких файлах?
Здравствуйте, у меня есть три cpp файла: commands.cpp(класс) map.cpp(класс) ConsoleApplication.cpp - main Мне нужно сделать так,...

Как сделать так, чтобы код вставил выбранные элементы в общий div?
Как сделать так, чтобы код ниже вставил все 7 элементов в общий div? а не каждый элемент по отдельности $(&quot;#parent...

4
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
10.02.2017, 07:06
Gourmand, вынести код в библиотеку
0
1 / 1 / 1
Регистрация: 29.01.2015
Сообщений: 72
11.02.2017, 00:54  [ТС]
А подробнее можно? Я отлично знаю, как сделать библиотеки типа shared object (*NIX) или dynamic linked library (Win*). Но понятия не имею, как это делается для Java в данном случае. Я делал Java код по подсказкам из Интернета - всё получилось и работает, как надо. Но пока не нашёл подсказку, как сделать разделяемую библиотеку для ДАННОГО случая. У Java есть свои заморочки с маршрутами. Кто-нибудь уже делал подобное? Может кто-то подсказать детальнее?
0
 Аватар для OlegJV
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
11.02.2017, 06:04
File - New Module
В модуле общий код
В других проектах Import Module
Кактотак
0
1 / 1 / 1
Регистрация: 29.01.2015
Сообщений: 72
11.02.2017, 22:41  [ТС]
А имя пакета в модуле прописывать не надо? Есть ли какие-то требования к маршруту, где должен лежать модуль?

Добавлено через 6 часов 53 минуты
Что должно остаться в файлах Interface.java кроме имени пакета?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.02.2017, 22:41
Помогаю со студенческими работами здесь

Общий сервер + БД для вэб и android приложений
Доброго времени суток! Вопрос в следующем: Написал вэб приложение на Java с использованием Spring и SQL БД. Клиентская часть написана...

Общий массив для двух приложений (процессов)?
Можно ли организовать общее адресное пространство для разных приложений (процессов) без использования СУБД и без передачи всего массива...

Как сделать общий favicon для всех сайтов?
Ребят подскажите как сделать чтобы на всех сайтах которые распологаются у меня на виртуальном сервере сделать общий favicon для тех страниц...

Общий каталог для нескольких пк
Делал по мануалу с интернета для одного пк прописал в /etc/exports /home/dmitryi/mpi_new...

Общий ресурс для нескольких форм
Прогаю я в WPF, шаблон Modern UI for WPF. Из-за этого есть некоторое отличие, Новые окна не открываются, а перелистываются ( появляются по...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru