Tuesday, May 2, 2017

Google Play Store 7.8.15 Prepares for Instant Apps Support

Google Instant Apps is a feature that allows users to "stream" parts of existing Android applications so they can try the app out in its native look without having to install the app. Instant Apps requires small modifications from the developers' end, but once approved by Google to implement these changes these applications will be able to reach a wider audience as users share organically share links to their friends and family. Instant Apps was initially introduced during Google I/O 2016 but it was only until January of this year that a few devices and a few apps could take advantage of Instant Apps.

However, with the release of Google Play Store v7.8.15, Instant Apps may start to see a wider release. In an APK teardown of this release, we've discovered new strings and an Activity that will allow users to opt in to Instant Apps.

Although an APK teardown can often predict features that may arrive in a future update of an application, it is possible that any of the features we mention here may not make it in a future release. This is because these features are currently unimplemented in the live build and may be pulled at any time by Google in a future build.


Play Store 7.8.15 APK Teardown

As usual, we can find evidence of new features by seeing what strings have been added to the APK file. In this case, we can see that the Google Play Store will add support for choosing which of your Google accounts to use with Instant Apps.

Play Store 7.8.15 Instant Apps

    <string name="instant_app_settings_menu_help">Help</string>  <string name="instant_apps_settings_change_account_dialog_cancel">cancel</string>  <string name="instant_apps_settings_change_account_dialog_description">All instant apps and associated app data, including app permissions, will be removed for the current account.</string>  <string name="instant_apps_settings_change_account_dialog_ok">change account</string>  <string name="instant_apps_settings_change_account_dialog_title">Change account?</string>  <string name="instant_apps_settings_description">You can use apps without installing them. Choose a Google Account to use for app sign-in and payments.</string>  <string name="instant_apps_settings_open_links_dialog_cancel">cancel</string>  <string name="instant_apps_settings_open_links_dialog_description">For this feature to work also turn on Open links in apps</string>  <string name="instant_apps_settings_open_links_dialog_ok">turn on now</string>  <string name="instant_apps_settings_open_links_dialog_title">Turn on required setting</string>  <string name="instant_apps_settings_opt_out_dialog_cancel">cancel</string>  <string name="instant_apps_settings_opt_out_dialog_description">All instant apps and associated app data, including app permissions, will be removed for the current account.</string>  <string name="instant_apps_settings_opt_out_dialog_ok">turn off</string>  <string name="instant_apps_settings_opt_out_dialog_title">Turn off Instant Apps?</string>  <string name="instant_apps_settings_title">Instant Apps account</string>  <string name="instant_apps_settings_turn_instant_apps_off">None</string>    <string name="debug_run_instant_apps_hygiene_summary">Immediately trigger Instant Apps Hygiene service</string>  <string name="debug_run_instant_apps_hygiene_title">Run Instant Apps Hygiene</string>    <string name="publisher_name_instant_app">Instant App</string>  

Judging by what's in these strings, Instant Apps will be an opt out process. Publishers whose apps support the Instant Apps service may show a special indicator in the Play Store that their app supports the service, too.

In addition, there are several XML files within the APK that define how the Instant Apps settings screen will appear to the user. These files are named instant_apps_settings_account_row.xml, instant_apps_settings.xml, and instant_apps_settings_menu.xml.

  <?xml version="1.0" encoding="utf-8"?>  <LinearLayout android:orientation="horizontal" android:background="?android:selectableItemBackground" android:paddingLeft="@dimen/instant_apps_settings_account_list_row_padding_left" android:paddingTop="@dimen/instant_apps_settings_account_list_row_padding_top" android:paddingRight="0.0dip" android:paddingBottom="@dimen/instant_apps_settings_account_list_row_padding_bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingStart="@dimen/instant_apps_settings_account_list_row_padding_left" android:paddingEnd="0.0dip"  xmlns:android="http://ift.tt/nIICcg">  <TextView android:textAppearance="@android:style/TextAppearance.Material.Subhead" android:id="@id/account_name" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0" android:labelFor="@id/account_selected" />  <RadioButton android:id="@id/account_selected" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@android:style/Widget.Material.CompoundButton.RadioButton" />  </LinearLayout>  
  <?xml version="1.0" encoding="utf-8"?>  <LinearLayout android:orientation="vertical" android:id="@id/instant_apps_settings_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:divider="?android:dividerHorizontal"  xmlns:android="http://ift.tt/nIICcg" xmlns:app="http://ift.tt/GEGVYd">  <android.support.v7.widget.Toolbar android:theme="@style/ThemeOverlay.AppCompat.ActionBar" android:id="@id/instant_apps_settings_toolbar" android:background="?colorPrimary" android:layout_width="fill_parent" android:layout_height="?actionBarSize" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />  <android.support.v7.widget.RecyclerView android:id="@id/account_list" android:paddingTop="@dimen/instant_apps_settings_account_list_padding_top" android:paddingBottom="@dimen/instant_apps_settings_account_list_padding_bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingStart="?android:listPreferredItemPaddingStart" android:paddingEnd="?android:listPreferredItemPaddingEnd" app:layoutManager="android.support.v7.widget.LinearLayoutManager" />  <TextView android:id="@id/instant_apps_settings_description" android:paddingTop="@dimen/instant_apps_settings_description_padding_top" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/instant_apps_settings_description" android:drawablePadding="@dimen/instant_apps_settings_description_drawable_padding" android:paddingStart="@dimen/instant_apps_settings_description_padding_start" android:paddingEnd="@dimen/instant_apps_settings_description_padding_end" />  </LinearLayout>  
  <?xml version="1.0" encoding="utf-8"?>  <menu  xmlns:android="http://ift.tt/nIICcg" xmlns:finsky="http://ift.tt/GEGVYd">>  <item android:icon="@drawable/ic_help" android:id="@id/action_help" android:title="@string/instant_app_settings_menu_help" finsky:showAsAction="ifRoom" />  </menu>  

Finally, since the Instant Apps Activity itself is accessible if you manually launch the right intent, we were able to start it to see what it would look like. Here's a screenshot of the Instant Apps account selection screen where you can pick which account will store app data and make payments associated with Instant Apps.


I'll continue digging around and update this article if I find anything interesting in the live build, or through an APK teardown. If you are looking for this latest release of the Google Play Store app, you can download it right now over at APKMirror. Follow our APK Teardown tag for more articles like this!



from xda-developers http://ift.tt/2pF9ncQ
via IFTTT

No comments:

Post a Comment