Включаем Samsung Multi Window в чужом приложении

от автора

В новых смартфонах Samsung есть весьма интересная фича — Multi Windows.
Она позволяет запускать одновременно два приложения в одном окне.
К сожалению, кроме Samsung эту фичу пока что мало кто поддерживает.
Но на самом деле её не так уж и сложно добавить к уже существующему приложению.

Выглядеть это будет вот так

Для переделки приложения нам понадобится:

Тренироваться мы будем на приложении 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>       ... 

  • Создаем или дополняем файл \res\values\dimens.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.safaribooksonline

    Apk файл будет создан в папке
    \com.safaribooksonline\dist\com.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

ссылка на оригинал статьи http://habrahabr.ru/post/179239/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *