티스토리 뷰

Dev Story

全新安卓6.0!开发者应该测试什么、注意什么呢?

개발자센터 지기 ShellingFord 2015.09.30 17:37


安卓6.0棉花糖的官方开发者SDK已被发布。估计在九月底的Google Developer Event(谷歌开发者活动)上公开新Nexus端后开始投入OTA升级。全新安卓6.0!开发者应该测试什么、注意什么呢?

安卓6.0棉花糖应该进行什么样的测试?

从棉花糖版本的官方SDK的发布已过了十多天。各位开发者有没有测试过APP在安卓6.0的运转能否? 安卓6.0为了使用户更加享受安卓端,使各位开发者提供更加优秀的用户体验,增加了多种新功能

新增加的功能中,‘运行时间允许模型(Runtime permission model)’、‘打盹儿(Doze)’、‘备用应用(App Standby)’、‘无聊SSL(BoringSSL)’等即可以影响到新开发的APP(应用)有,也可以对原有APP(应用)的执行有所影响。如果还没在安卓6.0上对各位的APP(应用)进行测试,可以先对原有APP(应用)的运转方式可以带来变化的事项进行测试。


运行时间允许模型 (Runtime permission model)

当以安卓6.0为目标SDK而开发的APP(应用)安装在设备上,用户确认APP(应用)的要求的过程将会消失,APP(应用)运转中若需要允许,要根据以下内容要求该允许。



而且,对于已被安装的APP(应用),用户可以‘Setting(设置) > Application (应用)> OOO app (select)[ooo应用(选择)] > app permission(允许应用)’,可以 确认各个APP(应用)在使用的允许,也可以随意赋予允许或删除允许。


特别的是,通过这种方式,不管安卓6.0是否开发为目标SDK,用户可以拥有对APP(应用)的允许权力。所以,大家测试一下当用户任意删除各位在APP(应用)的权力,APP(应用)将会怎么运转。

(译者)常问问题

Q:我的产品是在安卓M(23)以下版本开发的。

那么就不能从安卓6.0的用户得到安装时需要的允许吗?A 不是的。在6.0以下版本开发的应用仍存在在安装时获得权限这一过程。而且,在 'Setting (设置)> App permission(允许应用)'栏目上试着删除特定允许时,也会显示以下弹出窗口并对用户进行导航。(不必担心哦~)


Doze(打盹儿)

设备的电池使用量的确是很重要的问题。为了减少在不使用设备时消耗的电池,安卓6.0新增添了打盹儿模式。当满足以下所有条件,设备进入打盹儿模式。

  • 不在充电
  • 屏幕在关闭
  • 设备在一定时间内没有任何动态

进入打盹儿模式后,为了减少电池的消耗,除了几个核心应用以外,所有应用对以下功能得以限制。+ +  + 通过AlarmManager(闹钟管理)预约的闹钟将会关闭(除通过setAndAllowWhileIdle设置的闹钟以外) + + SyncAdapter与 JobScheduler(日程表) 会延迟。


设备进入打盹儿模式后,各位的应用也不能进行网络链接,有可能通过AlarmManager(闹钟管理)预定的闹钟将会取消。各位开发者需要测试当设备进入打盹儿模式和退出打盹儿模式时,是不是听从各位的操作。特别需要注意的是,像‘闹钟表’应用一样,设备需要在等候状态下进行重要行动的情况下的操作。. 可以通过新增加的adb命令测试打盹儿模式。

1)修改为不通过以下命令进行充电。
2)关闭设备屏幕。
3)通过反复执行以下命令,使设备处于IDLE(空闲)状态。
4)打开画面或动一下设备就会退出打盹儿模式。通过以下命令可以还原充电模式。
5)通过以下命令,可以确认目前设备状态。.

  1. 修改为不通过以下命令进行充电。
    $ adb shell dumpsys battery unplug
  2. 关闭设备屏幕。
  3. 通过反复执行以下命令,使设备处于IDLE(空闲)状态。
    $ adb shell dumpsys deviceidle step
  4. 打开画面或动一下设备就会退出打盹儿模式。通过以下命令可以还原充电模式。
    $ adb shell dumpsys battery reset
  5. 通过以下命令,可以确认目前设备状态。.
    $ adb shell dumpsys deviceidle

应用等候状态 (App Standby)

应用等候状态:安卓平台认为用户不再使用的应用为闲置(stanby)状态。在一定期限内,没有进行以下任何活动的应用有可能被认为是闲置状态。

用户亲自打开应用。以 Activity(活跃)或 Service(服务)的状态开启该应用。或其他程序中被使用的应用在使用该应用的服务。应用弹出了通知,用户可以通过锁屏画面看到该通知或在notification Tray(通知托盘)中确认通知。设置菜单中,用户已要求该应用被电源最佳设置除外。

若设备不是充电状态,被认为处于闲置状态的应用不能进行网络链接,同步化工作(mobile Sync)也将会停止。当设备处于充电状态,可以进行网络链接,被保留的工作将会重启。若设备长时间处于闲置状态,一天内,闲置应用可以链接网络一次。

若各位的应用与用户没有相互作用,只在后台运行,可能被指定为闲置状态。这种情况需要对应用的主要运转功能进行测试。


1)各位开发者可以通过新添加的adb命令对应用进行等候模式修改。

$ adb shell am broadcast -a android.os.action.DISCHARGING
$ adb shell am set-inactive <packageName> true

2)而且,通过以下命令,可以确认目前应用是否处在等候模式。

$ adb shell am get-inactive <packageName>

3)最后,通过adb命令,可以使特定应用恢复为正常模式。

$ adb shell am set-inactive <packageName> false

(译者添加的内容:) 删除openSSL的安卓6.0中的最大变化之一为BoringSSL完全替代OpenSSL。

若仍使用OpenSSL,可以直接输入在OpenSSL使用的代码,在应用上增添libssl.so , libcrypto.so 等已被开发的数据库(1Mb),或不使用OpenSSL,直接输入Java代码或使用BoringSSL等两种对自己合适的方式进行修改。

OneStore IAP Update(更新)内容

OneStore通过进行in-appSDK的安卓6.0对策以及SDK轻量化工作,除掉了与OpenSSL library原有的联动性。相比原有版本(14.01),将发布的15年版本SDK更为轻而快。敬请期待!

How to update new SDK in your app !

  1. Download the latest version of IAP SDK 
  2. Remove existing so files(libcrypto.so and libssl.so) and replace jar file with new one.
  3. Declare the following dependency in your Androidmanifest.xml file:.
    <!-- API level -->
    <meta-data
    android:name="iap:api_version"
    android:value="3" />
    
    <!-- runtime permission for OneStore -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />

 Note: You will not upload your app build with the previous version of IAP SDK from Oct.  

저작자 표시 비영리 동일 조건 변경 허락


사업자 정보 표시
SK플래닛 | 서진우 | 경기도 성남시 분당구 판교로 264 the Planet | 사업자 등록번호 : 104-86-36968 | TEL : 02-1600-6573 | Mail : devhelper@tstore.co.kr | 통신판매신고번호 : 제2014-경기성남-0036호 | 사이버몰의 이용약관 바로가기
댓글
댓글쓰기 폼