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

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

20.07.2016, 22:10. Показов 4605. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
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