티스토리 뷰

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호 | 사이버몰의 이용약관 바로가기
댓글
댓글쓰기 폼