» » Как установить два одинаковых приложения на один телефон Андроид

Как установить два одинаковых приложения на один телефон Андроид



Для установки двух (или больше) одинаковых приложений на один телефон нужно сменить значение package в файле AndroidManifest.xml, находящемся внутри apk-билда.

Например, у нас имеется такое:
<manifest
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.bamd"
xmlns:android="http://schemas.android.com/apk/res/android">


Для того, чтобы установить это приложение ещё раз, нужно сделать примерно следующее:
<manifest
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.bamd.new"
xmlns:android="http://schemas.android.com/apk/res/android">


После такого изменения заново собранный apk-файл придётся подписать сертификатом. Информацию о том, как распаковывать, запаковывать и подписывать apk-файлы, можно найти в любом поисковике по запросу SmartApkTool.

Возможные проблемы



Проблема 1


Если рядом с AndroidManifest.xml не создаётся файл apktool.yml, то в домашней директории пользователя найдите папку apktool\framework и удалите из неё файл 1.apk.

Проблема 2


Иногда обычная смена имени package не помогает. Чаще всего это бывает в случаях, когда в файле AndroidManifest.xml прописаны относительные пути к различным активити. Например:
<activity
android:label="BAMD"
android:name=".SplashScreenActivity"
android:screenOrientation="portrait">


В такой ситуации нужно прописать полный путь ко всем активити, то есть:
<activity
android:label="BAMD"
android:name="ru.bamd.SplashScreenActivity"
android:screenOrientation="portrait">


Обратите внимание, что прописывать нужно не новое имя package (то есть в нашем случае не ru.bamd.new), а реальный путь к активити в директории smali распакованного apk-файла. Естественно, в общем случае путь совпадает со старым именем package (в нашем случае это new).

Проблема 3


Если в файле AndroidManifest.xml есть тег provider, то в его атрибуте authorities нужно также дописать символы, которые мы использовали в качестве дополнения к параметру package (в нашем случае это .test). Например, было:
<provider
android:authorities="com.someapp.android"
android:name="com.someapp.android">


Стало:
<provider
android:authorities="com.someapp.android.new"
android:name="com.someapp.android">


Как и в проблеме 2, значение атрибута name менять не надо.

15-09-2017, 13:43 449 0

Добавить свой комментарий:


    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent
Наверх