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

в 5:19, , рубрики: android, Multi windows, Samsung, метки: , ,

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

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

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

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

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

    Apk файл будет создан в папке
    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 можно добавить и в своё новое приложение.
Плюс кучу вкусностей с перетаскиванием контента из одного приложения в другое.

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

Источники:
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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js