背景

游戏上架谷歌申请举荐时,谷歌会给予一些优化倡议。这些倡议实际上都是比拟不错的游戏体验优化方向。以下依据app上架谷歌利用商店的规范,列举须要适配的中央并提供了批改样例。

1. 谷歌利用图标
游戏icon:
5个不同尺寸的icon,4848, 7272, 9696, 144144, 192*192
别离放在mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi上面。

推送icon(只能由红色+通明组成):(白底通明字)
5个不同尺寸的icon,2424, 3636, 4848, 7272, 96*96
别离放在mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi上面。

示例:

2. 状态栏音讯推送
在游戏利用中进行版本迭代时,如果游戏自身有音讯推送,且SDK中也有推送的状况下,发送音讯的notify办法中,id有可能不同,此时会呈现两条音讯(游戏的和SDK的),有可能会被Google利用商店回绝举荐。

NotificationManager.notify(int id, Notification notification)

呈现两条音讯:

须要做到的成果--同一个利用的音讯重叠:

开展后:

批改示例:

private void mergeNotifications(){    int mergeId = 0;    String groupKey = "com.android.example.WORK_EMAIL";    String channelId = "1";    Notification notification1 = new NotificationCompat.Builder(MainActivity.this, channelId)        .setSmallIcon(R.drawable.ic_launcher_background)        .setContentTitle("推送须要重叠")        .setContentText("这是一条SDK的告诉")        .setGroup(groupKey)        .build();    Notification notification2 = new NotificationCompat.Builder(MainActivity.this, channelId)        .setSmallIcon(R.drawable.ic_launcher_background)        .setContentTitle("推送须要重叠")        .setContentText("这是一条游戏的告诉")        .setSmallIcon(R.drawable.ic_stat_name)        .setGroup(groupKey)        .build();    Notification mergeNotification = new NotificationCompat.Builder(MainActivity.this, channelId)        .setContentTitle("推送须要重叠")        .setContentText("2条未读信息")        .setSmallIcon(R.drawable.ic_stat_name)        .setStyle(new NotificationCompat.InboxStyle()            .addLine("这是一条游戏的告诉")            .addLine("这是一条SDK的告诉")            .setBigContentTitle("2条未读信息")            .setSummaryText("推送测试"))        .setGroup(groupKey)        .setGroupSummary(true)        .build();    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);    notificationManager.notify(1, notification1);    notificationManager.notify(2, notification2);    notificationManager.notify(mergeId, mergeNotification);}

3. 零碎主题格调

在利用外面弹出的Dialog、Loading框,须要适配零碎格调!

例如在5.0以上的零碎,呈现这种格调是不行的:

这种格调才是符合要求的:

如果这些Dialog、Loading框不是应用零碎格调,而是自行设计,则能够持续应用,不用进行额定解决; 例如:

具体实现办法有两种:

第一种,在Androidmanifest的application和activity标签下,不要设定android:theme,即可适配零碎格调。

批改示例1:

<manifest     xmlns:android="http://schemas.android.com/apk/res/android"        package="com.game37.themeapplication">    <application       android:allowBackup="true"       android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true">       <activity         android:name=".MainActivity"         android:screenOrientation="sensorLandscape">         <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />           </intent-filter>        </activity></application></manifest>

示例成果1:

第二种,可保留android:theme,但须要援用Google库工程appcompat_v7,应用零碎自带主题或者自定义主题。 其中,在自定义的style外面,继承Theme.AppCompat(还有很多子格调能够抉择,如Theme.AppCompat.Light和Theme.AppCompat.NoActionBar等)。

批改示例2:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.game37.themeapplication">    <application        ...        android:theme="@style/Theme.AppCompat">        <activity            android:name=".MainActivity"            android:screenOrientation="sensorLandscape"            //应用自定义主题            android:theme="@style/testStyle">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity            //应用零碎自带主题            android:name=".MainActivity2"            android:theme="@style/Theme.AppCompat.NoActionBar" />    </application></manifest>

其中,自定义主题款式如下:(设置全屏、背景色等)

<style  name="testStyle" parent="Theme.AppCompat">    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>    <item name="android:windowActionBarOverlay">true</item>    <item name="android:windowBackground">@null</item></style><style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">    <item name="android:background">@color/colorAccent</item></style>

示例成果2:

在Androidmanifest的相干android:theme设置上述继承Theme.AppCompat格调的主题即可。

【常见问题】

游戏工程接入SDK的过程中,如果主Activity继承的是androidx.appcompat.app.AppCompatActivity,须要应用Theme.AppCompat类主题,因而倡议游戏工程的主题设置不留空,即采纳第二种形式设定相干主题!
图片起源:http://www.lyouxi.com/ 游戏盒子