В новых смартфонах Samsung есть весьма интересная фича — Multi Windows.
Она позволяет запускать одновременно два приложения в одном окне.
К сожалению, кроме Samsung эту фичу пока что мало кто поддерживает.
Но на самом деле её не так уж и сложно добавить к уже существующему приложению.
Выглядеть это будет вот так
Для переделки приложения нам понадобится:
- apk файл приложения
- JDK
- android-apktool
code.google.com/p/android-apktool/downloads/list
Тренироваться мы будем на приложении Safari to go (т.к. мне хотелось-бы использовать его параллельно со словарем)
- Распаковываем apk файл в папку
apktool.bat d -s com.safaribooksonline.apk ./com.safaribooksonline - Вносим следующие изменения в файл AndroidManifest.xml
... <application android:label="Safari To Go" ...> <activity android:name=".LoginActivity" ...> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" /> </intent-filter> </activity> ... <uses-library required="false" name="com.sec.android.app.multiwindow"> </uses-library> <meta-data android:name="com.sec.android.support.multiwindow" android:value="true" /> <meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W" android:resource="@dimen/app_defaultsize_w" /> <meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H" android:resource="@dimen/app_defaultsize_h" /> <meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W" android:resource="@dimen/app_minimumsize_w" /> <meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H" android:resource="@dimen/app_minimumsize_h" /> </application> ...
- Создаем или дополняем файл resvaluesdimens.xml
<?xml version="1.0" encoding="utf-8"?> <resources> ... <dimen name="app_defaultsize_w">632.0dip</dimen> <dimen name="app_defaultsize_h">598.0dip</dimen> <dimen name="app_minimumsize_w">632.0dip</dimen> <dimen name="app_minimumsize_h">598.0dip</dimen> </resources>
- Запаковываем все обратно в apk файл
apktool.bat b ./com.safaribooksonlineApk файл будет создан в папке
com.safaribooksonlinedistcom.safaribooksonline.apk - Генерим ключ для подписи apk файла (т.к. приложение будет подписано не оригинальным ключом оно не будет обновляться из google play)
Я взял название стораджа и алиса прямл из SDK. Но при желании можно поменять на что-то более оригинальное.
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 - Подписываем приложение сгенерированным ключом
jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore com.safaribooksonline.apk alias_name
Теперь приложение можно устанавливать на устройство.
С такой-же легкостью поддержку Multi windows можно добавить и в своё новое приложение.
Плюс кучу вкусностей с перетаскиванием контента из одного приложения в другое.
Источники:
www.modaco.com/page/news/_/android/developers-add-support-for-samsung-multi-window-to-your-apps-r823
developer.android.com/tools/publishing/app-signing.html
developer.samsung.com/s-pen-sdk/technical-docs-09
Автор: sinty