Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
103 / 69 / 19
Регистрация: 07.07.2014
Сообщений: 240

Запуск Activity из другого apk

20.07.2016, 22:10. Показов 4692. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Попытаюсь максимально собрать мысли в кучу и описать, то что мне надо. Есть скомпилированный apk файл без исходного кода, этот apk подключается в моем проекте с помощью DexClassLoader, далее с помощью reflection я оттуда тяну нужные классы и работаю с ними. Все было хорошо пока мне не понадобилось запустить activity этого apk. При попытке сделать это "влоб", естественно android сообщил мне что activity то в манифесте моем не прописана, да и откуда б ей там взяться, т.к. этой activity там и нет (ее вообще из интернета скачали между делом).
Собственно задача запустить activity из этого строннего apk, без модернизации самого apk? У кого есть идеи как это сделать? Может как-то с помощью AIDL, хотя они вроде в другую сторону работают.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.07.2016, 22:10
Ответы с готовыми решениями:

При открытие activity одного приложения предлагает открыть activity другого
При открытие одного activity предлагает открыть activity другого. Package у них разный.

Как в Android Studio изменять объект одного Activity из другого Activity?
Есть два Activity, в одном кнопка и элемент editText. Во втором activity есть элемент TextView. Когда я в первом активити ввожу текст с...

Изменение layout-элементов одного activity из другого activity
Здравствуйте! Я хочу изменить размер или цвет текста TextView в одном activity из второго activity, каким образом мне можно это...

11
77 / 40 / 14
Регистрация: 14.01.2016
Сообщений: 203
20.07.2016, 22:44

Не по теме:

Есть скомпилированный apk файл без исходного кода
так дизассемблируй и декомпилируй. apktool, dex2jar+jd-gui, fernflower и т.д.



да и откуда б ей там взяться, т.к. этой activity там и нет (ее вообще из интернета скачали между делом).
возьми из манифеста этого apk и пропиши у себя.
или если это главная activity или еще как-то зацепиться сможешь то через intent:
Java
1
2
Intent var = new Intent();
this.startActivity(var.setPackage("com.example.another").addCategory("android.intent.category.LAUNCHER"));
0
103 / 69 / 19
Регистрация: 07.07.2014
Сообщений: 240
20.07.2016, 22:48  [ТС]
Борис Верещагин, apk не установлен.
Цитата Сообщение от Борис Верещагин Посмотреть сообщение
возьми из манифеста этого apk и пропиши у себя.
так просто не работает, хотя может я плохо пытался. Создам маленький тестовый проект, для экспериментов.

Добавлено через 1 минуту
Цитата Сообщение от Борис Верещагин Посмотреть сообщение
так дизассемблируй и декомпилируй. apktool, dex2jar+jd-gui, fernflower и т.д.
я достаточно хорошо изучил smali чтоб писать прям на нем, но всеже редактировать apk не желательно.
0
7 / 8 / 1
Регистрация: 18.05.2015
Сообщений: 191
20.07.2016, 22:50
Попробуйте это:
Java
1
2
3
4
5
6
try {
                    Intent intentApp = this.getPackageManager().getLaunchIntentForPackage("com.example.cyberforum"));
                    startActivity(intentApp);
                } catch (Exception e) {
                    Toast.makeText(getApplicationContext(), "Приложение не найдено. Выберите другое.", Toast.LENGTH_LONG).show();
                }
0
77 / 40 / 14
Регистрация: 14.01.2016
Сообщений: 203
20.07.2016, 22:52
DarkVortex, если активити exported то можешь так
Java
1
2
3
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example", "com.example.MyExampleActivity"));
startActivity(intent);
Создам маленький тестовый проект, для экспериментов.
+++

Добавлено через 57 секунд

Не по теме:

den_droid, это то-же откроет главную активити у которой фильтр лаунчер...

0
103 / 69 / 19
Регистрация: 07.07.2014
Сообщений: 240
20.07.2016, 22:55  [ТС]
Цитата Сообщение от Борис Верещагин Посмотреть сообщение
если активити exported то можешь так
Это работает только для установленных пакетов, у меня же по сути есть просто внешний dex файл.
Пока есть пара идей, пойду попробую, если получится расскажу
0
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
21.07.2016, 00:25
Да ничего вы не расскажите. Вы реально хотите что бы Android предоставил такую дырень? Приходи "мол запускай чего хош." Хочешь эту активность, а хочешь ту? Активность можно запустить двумя способами - явно (само собой тут "вредный манифест вмешается").
Java
1
2
Intent intent = new Intent(HelloWorld.this, AboutActivity.class);
startActivity(intent);
И второй способ - неявный. Как например открыть страницу установленным браузером
Java
1
2
3
Uri address = Uri.parse("http://блаблабла");
Intent openlinkIntent = new Intent(Intent.ACTION_VIEW, address);
startActivity(openlinkIntent)
Вот собственно и все способы. Вам, бы может, второй способ и помог, да только там нужно действия согласовать с активностью, т.к. активность должна сообщать - мол я могут то - то и то - то. А вы запускаете сообщающее намерение, и когда намерение и возможность активность совпадут она будет предложена для действия. Так как то.
0
103 / 69 / 19
Регистрация: 07.07.2014
Сообщений: 240
21.07.2016, 12:08  [ТС]
Цитата Сообщение от Vladimirys Посмотреть сообщение
Вы реально хотите что бы Android предоставил такую дырень?
Честно говоря, да, и да предоставил. Но activity всетаки пришлось прописать в манифест, проблема была только в добавлении нового dex в dexpathlist, решение подсказали на SO https://stackoverflow.com/ques... ternal-dex

Добавлено через 10 минут
Более того, я ожидал что будет проблема с загрузкой ресурсов из стороннего apk, но ее к счастью нет.
1
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
21.07.2016, 17:43
Ага. Как тот конь которого цыган почти приучил не есть, только вот помер. Так и тут, Все решил но с одним НО.
Activities must be pre-defined in the application's manifest.
Собственно как у нас писали в конце задачи по геометрии - Ч.Т.Д.
0
103 / 69 / 19
Регистрация: 07.07.2014
Сообщений: 240
21.07.2016, 21:20  [ТС]
Удалите пожалуйста тему
0
0 / 0 / 1
Регистрация: 16.06.2016
Сообщений: 13
21.07.2016, 21:24
Особенно не разбирался в этом, но может это вам поможет: Github.com: DynamicLoadApk
0
103 / 69 / 19
Регистрация: 07.07.2014
Сообщений: 240
21.07.2016, 22:06  [ТС]
NanoDroid, спасибо, но уже сам сделал)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.07.2016, 22:06
Помогаю со студенческими работами здесь

Из одного Activity получить значение другого Activity
Запускаю активити: public class MainActivity extends Activity { ... ... Intent intent = new Intent(getBaseContext(),...

Доступ к БД из другого Activity.
Очередной нубский вопрос. В главном активити есть dbHelper. Все хорошо. Хочу в одном активити показать результат запроса в виде...

Запуск стороннего .apk
Подскажите как запустить из своего приложения, другое .apk(Зная его путь)

Вызов метода из другого Activity
Здраствуйте. Помогите,пожалуйста, разобраться с несколькими вопросами: 1) Правильно ли, что "Настройки" я выделил в отдельный...

Функция activity из другого класса
Есть главная activity и создаю класс для отрисовки графики: Activity: public class General extends Activity { @Override ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru