HOME 首頁(yè)
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專(zhuān)注品牌策劃15年

    androidapkfree

    發(fā)布時(shí)間:2023-03-19 10:18:33     稿源: 創(chuàng)意嶺    閱讀: 116        問(wèn)大家

    大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于androidapkfree的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。

    開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話(huà)答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫(xiě)出的就越詳細(xì),有微信小程序端、在線(xiàn)網(wǎng)頁(yè)版、PC客戶(hù)端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    androidapkfree

    一、APK安裝(一)—— PMS原理分析

    在 APK安裝概述 中曾提及apk有四種安裝場(chǎng)景,但無(wú)論是哪一種方式,最終會(huì)提交給 PackageManagerService 處理,只是前置的處理鏈路 不同,所以本篇先對(duì) PMS 這一主要過(guò)程進(jìn)行分析。 frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java 【基于Android 9.0】

    1、對(duì)特定的一些系統(tǒng)進(jìn)程信息進(jìn)行設(shè)置處理,并保存到 Settings

    2、解析 /etc/permissions 下相關(guān)xml文件取得系統(tǒng)相關(guān)權(quán)限、系統(tǒng)具備的相關(guān)功能等信息

    3、解析 /data/system/package.xml 文件獲取已安裝應(yīng)用的相關(guān)信息

    4、對(duì)相關(guān)的 apk 和 jar 進(jìn)行 dex 優(yōu)化處理,主要是 /system/framework 目錄下的相關(guān)jar和apk

    5、依據(jù) sharedUserId 這個(gè)配置來(lái)確定 apk 運(yùn)行在哪個(gè)進(jìn)程,然后把運(yùn)行的相關(guān)進(jìn)程信息加入到 Settings 中,使得系統(tǒng)可以知道每個(gè) apk 運(yùn)行在哪個(gè)進(jìn)程中

    6、解析 AndroidManifest.xml 文件,提煉文件中的節(jié)點(diǎn)信息

    7、掃描本地文件,主要針對(duì)系統(tǒng)應(yīng)用、本地安裝應(yīng)用等等

    8、管理本地 apk ,包括安裝、刪除等

    前面說(shuō)到 APK 的信息會(huì)提交給 PMS 進(jìn)行安裝的一系列工作,具體是通過(guò) PackageHandler 發(fā)送消息來(lái)驅(qū)動(dòng) APK 的復(fù)制和安裝,其時(shí)序圖如下:

    上相過(guò)程中有幾點(diǎn)需要說(shuō)明:

    1、在 installStage 方法中創(chuàng)建了 InstallParams 對(duì)象,它對(duì)應(yīng)于包的安裝數(shù)據(jù),并創(chuàng)建 INIT_COPY 消息并發(fā)送給 PackageHandler 進(jìn)行處理;

    2、 PackageHandler 在處理 INIT_COPY 消息時(shí),會(huì)先判斷是否綁定了 DefaultContainerService ,這是用于檢查和賦值可移動(dòng)文件的服務(wù),比較耗時(shí),所以和 PMS 并沒(méi)有運(yùn)行在同一個(gè)進(jìn)程中,它們之間通過(guò) IMediaContainerService 進(jìn)行 IPC 通信,沒(méi)有綁定則會(huì)進(jìn)行綁定,之后

    DefaultContainerConnection 同樣是定義在 PMS 中,執(zhí)行鏈路如下:

    3、發(fā)送 MCS_BOUND 消息時(shí),根據(jù)發(fā)送的 Message 是否帶 Object 分為兩種,如下所示:

    4、 MCS_BOUND 消息的處理:

    HandlerParams PMS 中的抽象類(lèi),它的實(shí)現(xiàn)類(lèi)為 PMS 的內(nèi)部類(lèi) InstallParams 。 HandlerParams startCopy 方法如下所示:

    PackageManagerService.java#HandlerParams

    注釋① 處調(diào)用抽象方法 handleStartCopy ,具體實(shí)現(xiàn)在 InstallParams 中,如下所示:

    PackageManagerService.java#InstallParams

    1、 注釋① 處確定了 APK 的安裝位置。

    2、 注釋② 處創(chuàng)建 InstallArgs 對(duì)象,此對(duì)象是一個(gè)抽象類(lèi),定義了 APK 的復(fù)制和重命名APK等安裝邏輯,在 Android 8.x 及之前的版本中有三個(gè)子類(lèi): FileInstallArgs、AsecInstallArgs、MoveInstallArgs 。其中 FileInstallArgs 用于處理安裝到非ASEC的存儲(chǔ)空間的APK,即內(nèi)部存儲(chǔ)空間(Data分區(qū)); AsecInstallArgs 用于處理安裝到ASEC(mnt/asec)即SD卡中的APK; MoveInstallArgs 用于處理已安裝APK的移動(dòng)的邏輯;但在 Android 9.x 之后已經(jīng)去掉了 AsecInstallArgs ,

    3、 注釋③ 處調(diào)用 InstallArgs copyApk 方法,這里以 FileInstallArgs 的實(shí)現(xiàn)為例,內(nèi)部會(huì)調(diào)用 FileInstallArgs doCopyApk 方法:

    1、 注釋① 處用于創(chuàng)建臨時(shí)存儲(chǔ)目錄,比如 /data/app/vmdl18300388.tmp ,其中 18300388 是安裝的 sessionId ;

    2、 注釋② 處通過(guò) IMediaContainerService 跨進(jìn)程調(diào)用 DefaultContainerService copyPackage 方法,這個(gè)方法會(huì)在 DefaultContainerService 所在的進(jìn)程中將 APK 復(fù)制到臨時(shí)存儲(chǔ)目錄,比如 /data/app/vmdl18300388.tmp/base.apk ,至此 APK 的復(fù)制工作結(jié)束。

    在上述 APK 的賦值調(diào)用鏈的過(guò)程中,在 HandlerParams startCopy 方法中,會(huì)調(diào)用 handleReturnCode 方法,時(shí)序圖如下:

    PackageManagerService#handleReturnCode :

    注釋① 處檢查APK的狀態(tài),在安裝前確保安裝環(huán)境的可靠,如果不可靠會(huì)清除復(fù)制的APK文件, 注釋③ 處會(huì)檢測(cè)是否安裝成功,失敗則刪除安裝相關(guān)的目錄和文件。安裝完成之后在 注釋⑤ 處會(huì)發(fā)送 POST_INSALL 消息通知已安裝完成,此處稍后會(huì)說(shuō)明。

    注釋② 處的 installPackageTracedLI 會(huì)調(diào)用 PMS installPackageLI 方法:

    PackageManagerService.java#installPackageLI :

    這里需要說(shuō)明幾點(diǎn):

    1、 注釋③ 處,會(huì)先檢測(cè) Settings 中保存有要安裝的 APK 信息,則說(shuō)明安裝該 APK ,因此需要檢驗(yàn)APK 的簽名信息,確保安全的進(jìn)行替換。

    2、 注釋④ 處,會(huì)對(duì)臨時(shí)文件重新命名,例如 /data/app/vmdl18300388.tmp/base.apk ,重命名為 /data/app/包名-oONlnRRPYyleU63AveqbYA==/base.apk 。新的包名后面帶上的一串字母和數(shù)字的混合字符串,是使用MD5的方式對(duì)隨機(jī)生成的16個(gè)字符進(jìn)行加密之后的產(chǎn)物。

    3、 注釋⑤ 處,根據(jù) replace 來(lái)做區(qū)分,如果是替換安裝就會(huì)調(diào)用replacePackageLIF方法,其方法內(nèi)部還會(huì)對(duì)系統(tǒng)APP和非系統(tǒng)APP進(jìn)行區(qū)分處理,如果是新安裝APK會(huì)調(diào)用installNewPackageLIF方法

    PackageManagerService.java#installNewPackageLIF

    在上面 processPendingInstall 方法的源碼分析中,在 注釋⑤ 處會(huì)發(fā)送 POST_INSTALL 消息通知安裝完成,那么接下來(lái)就來(lái)具體看一看在 PackageHandler 中是怎么處理這個(gè)消息的。

    以上為主要的方法摘要,具體可總結(jié)為:

    1、第一步:這里主要是先將安裝信息從安裝列列表中移除,這個(gè)也是前面在processPendingInstall中添加的

    2、第二步:安裝成功后,獲取運(yùn)行時(shí)權(quán)限

    3、第三步:獲取權(quán)限后,發(fā)送ACTION_PACKAGE_ADDED廣播,告訴Laucher之流,更新icon

    4、第四步:如果是升級(jí)更新則在發(fā)送兩條廣播

    5、第五步:如果安裝包中設(shè)置了PRIVATE_FLAG_FORWARD_LOCK或者被要求安裝在SD卡上,則調(diào)用sendResourcesChangedBroadcast方法來(lái)發(fā)送一個(gè)資源更改的廣播

    6、第六步:如果該應(yīng)用是一個(gè)瀏覽器,則要清除瀏覽器設(shè)置,重新檢查瀏覽器設(shè)置

    7、第七步:強(qiáng)制調(diào)用gc,出發(fā)JVM進(jìn)行垃圾回收操作

    8、第八步:刪除舊的安裝信息

    9、回調(diào)回調(diào) IPackageInstallObserver2 的 packageInstalled 方法。告訴 PackageInstaller 安裝結(jié)果。從而實(shí)現(xiàn)了安裝回調(diào)到UI層

    上述幾部分大致說(shuō)明 PMS 處理 APK 的主要步驟,可總結(jié)如下:

    1、當(dāng) PackageInstaller APK 的信息提交給 PMS 處理, PMS 會(huì)通過(guò)向 PackageHandler 發(fā)送消息來(lái)驅(qū)動(dòng) APK 的復(fù)制和安裝工作

    2、 PMS 發(fā)送 INIT_COPY MCS_BOUND 類(lèi)型的消息,控制 PackageHandler 來(lái)綁定 DefaultContainerService 來(lái)完成 APK 的復(fù)制等工作

    3、復(fù)制 APK 完成之后,則開(kāi)始進(jìn)行安裝 APK 的流程,包括安裝前的檢查、安裝 APK 和安裝后的收尾工作。

    [ 1 ] https://maoao530.github.io/2017/01/18/package-install/

    [ 2 ] https://blog.csdn.net/yiranfeng/article/details/103941371

    [ 3 ] http://liuwangshu.cn/framework/pms/3-pms-install.html

    [ 4 ] https://www.freesion.com/article/5119749905/

    [ 5 ] https://www.jianshu.com/p/9ddb930153b7

    二、zte機(jī)頂盒如何安裝當(dāng)貝市場(chǎng)

    中興機(jī)頂盒安裝第三方軟件需要先綠色,接下來(lái)詳細(xì)說(shuō)下最新的中興盒子(B860AV1.1、B860AV1.2、B860AV1.1-T2、B860AV2.1等)等所有設(shè)置中帶有運(yùn)維調(diào)試,可ADB調(diào)試打開(kāi)盒子的綠色整個(gè)流程,以下方法在“中興B860AV1.1-T2”親測(cè)可用,其他型號(hào)(不包括老版B860A)理論也可通用:

    1、準(zhǔn)備工具

    ADB組件下載:http://cdn.tvapk.com/zndsjc/adb.zip

    最新ADB密碼計(jì)算器下載:http://cdn.tvapk.com/zndsrom/app/zikaikeji.apk

    2、軟件下載

    當(dāng)貝市場(chǎng)(點(diǎn)擊立即下載)、當(dāng)貝桌面(點(diǎn)擊立即下載)、當(dāng)貝影視快搜(點(diǎn)擊立即下載),下載完成后分別重命名為1.apk、2.apk、3.apk,然后拷貝到U盤(pán)的app文件夾(沒(méi)有就創(chuàng)建),然后插入機(jī)頂盒的任意USB接口;

    3、將下載好的ADB組件解壓到C盤(pán)的根目錄;

    接著找一臺(tái)安卓手機(jī),將最新的ADB密碼計(jì)算器安裝上(如果沒(méi)有安卓手機(jī)或平板,也可以電腦安裝一個(gè)“靠譜天天模擬器”)

    4、進(jìn)入中興盒子的設(shè)置,一般密碼為:6321或運(yùn)營(yíng)商的號(hào)碼(10086、10000、10010),連接wifi(機(jī)頂盒和電腦處于同個(gè)網(wǎng)段),接著選擇運(yùn)維調(diào)試—打開(kāi)ADB調(diào)試,然后運(yùn)行ADB密碼計(jì)算器,將對(duì)應(yīng)的MAC地址與隨機(jī)數(shù)填入,這里需要注意,如果隨機(jī)數(shù)是不帶C的就選第一個(gè)“計(jì)算20170106”,如果隨機(jī)數(shù)是帶C的就選擇“計(jì)算20180207”,然后將計(jì)算的密碼填入,成功激活A(yù)DB!

    5、回到電腦操作,按下鍵盤(pán)快捷鍵“WIN+R”,輸入“cmd”確定,進(jìn)入命令終端,

    注意:命令可以通過(guò)鼠標(biāo)右鍵進(jìn)行粘貼到命令窗口,不用自己一個(gè)個(gè)手打,也不推薦,除非標(biāo)藍(lán)的命令需要手打;

    接著依次輸入以下標(biāo)紅命令(固定命令,不可更改),標(biāo)藍(lán)的需要根據(jù)自己的實(shí)際情況做出更改,不可直接復(fù)制:

    C:\Users\mayn>cd c:/adb

    c:\adb>adb connect 192.168.0.101(不要以我的為準(zhǔn),輸入自己盒子的IP)

    * daemon not running. starting it now on port 5037 *

    * daemon started successfully *

    connected to 192.168.0.101:5555

    adb shell

    1|shell@square:/ $ setprop config.Android.AppInstallCtrl 3

    setprop config.Android.AppInstallCtrl 3

    255|shell@square:/ $ su

    su

    shell@square:/ # mount -o remount -o rw /system

    mount -o remount -o rw /system

    shell@square:/ # echo "setprop config.Android.AppInstallCtrl 3" >> /system/bin/init.zte.post_boot.sh

    pInstallCtrl 3" >> /system/bin/init.zte.post_boot.sh <

    shell@square:/ # echo "start adbd" >> /system/bin/init.zte.post_boot.sh

    echo "start adbd" >> /system/bin/init.zte.post_boot.sh

    shell@square:/ # echo "adbd&" >> /system/bin/init.zte.post_boot.sh

    echo "start adbd" >> /system/bin/init.zte.post_boot.sh

    1|shell@square:/ # df

    df

    Filesystem Size Used Free Blksize

    /dev 495.0M 128.0K 494.9M 4096

    /sys/fs/cgroup 495.0M 0.0K 495.0M 4096

    /mnt/asec 495.0M 0.0K 495.0M 4096

    /mnt/obb 495.0M 0.0K 495.0M 4096

    /tmp 495.0M 792.0K 494.2M 4096

    /var 495.0M 468.0K 494.5M 4096

    /system 991.9M 482.1M 509.8M 4096

    /cache 743.9M 336.1M 407.8M 4096

    /data 5.0G 198.3M 4.8G 4096

    /data/var 495.0M 0.0K 495.0M 4096

    /mnt/shell/emulated 5.0G 198.3M 4.8G 4096

    /mnt/media_rw/sda 10.0M 0.0K 10.0M 4096

    /storage/sda 10.0M 0.0K 10.0M 4096

    /mnt/media_rw/sda/part1 7.5G 3.4G 4.0G 32768

    /storage/sda/part1 7.5G 3.4G 4.0G 32768

    (U盤(pán)路徑判斷方法:一般在輸入df后最后一行,然后看內(nèi)存的大小是否差不多即可,可以看到這個(gè)7.5G就是我的U盤(pán),路徑為前面的“/storage/sda/part1”)

    shell@square:/ # cd /storage/sda/part1(注意,不同的型號(hào)U盤(pán)路徑不同,以自己的路徑為準(zhǔn))

    cd /storage/sda/part1

    shell@square:/storage/sda/part1 # cd app

    cd app

    shell@square:/storage/sda/part1/app # ls

    ls

    1.apk

    2.apk

    3.apk

    shell@square:/storage/sda/part1/app # cp *.apk /data/app

    cp *.apk /data/app

    shell@square:/storage/sda/part1/app # am start com.dangbei.tvlauncher

    am start com.dangbei.tvlauncher

    Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] pkg=com.dangbei.tvlauncher }

    shell@square:/storage/sda/part1/app #

    這樣整個(gè)流程就全部走完了,將盒子接上電視,進(jìn)入當(dāng)貝桌面,命令中已經(jīng)允許安裝未知應(yīng)用,并且開(kāi)機(jī)自啟動(dòng)ADB,這樣進(jìn)入當(dāng)貝市場(chǎng)就可以在線(xiàn)下載安裝自己需要的軟件!

    三、android源碼被混淆了怎么還原

    android源碼被混淆了還原方法為:

    1、得到 classes.dex文件;直接用機(jī)器上的解壓軟件 打開(kāi) .apk 文件,解壓出 classes.dex 文件。

    2、還原.jar文件;這一步需要用到一個(gè)工具 dex2jar (谷歌的代碼庫(kù)里有http://code.google.com/p/dex2jar/)下載完了,解壓,然后把第一步的 產(chǎn)物(即那個(gè)classes.dex文件)放到 dex2jar的解壓目錄(解壓目錄里 有 dex2jar.bat 文件,檢查一下,沒(méi)有的話(huà)說(shuō)明目錄不對(duì))。

    3、查看.jar文件;這一步就是傳統(tǒng)的 反編譯 了,需要工具輔助,這里用到的工具是jd-gui(http://java.decompiler.free.fr/?q=jdgui)下載系統(tǒng)對(duì)應(yīng)的版本,解壓,(xp系統(tǒng))會(huì)看到一個(gè) .exe文件,沒(méi)錯(cuò)就是 單文件綠色版,雙擊,選擇 第二步 生成的 .jar,即可。

    四、Android認(rèn)證包括什么?android認(rèn)證只包括GMS認(rèn)證嗎?

    GMS綜述

    GMS認(rèn)證,一般要求我們提供CTS, XTS, Verify三份測(cè)試報(bào)告,如下圖:

    androidapkfree

    Bin: 認(rèn)證的軟件

    CTS: CTS的測(cè)試報(bào)告

    GTS: XTS的測(cè)試報(bào)告

    ctsVerifierReports: Verify測(cè)試報(bào)告

    CTS:

    CTS(全稱(chēng)“Compatibility Test Suite”,即“兼容性測(cè)試包”)的認(rèn)證,這是一組用以測(cè)試的.apk程序之類(lèi)的集合,它能夠在官網(wǎng)(http://source.android.com/compatibility/downloads.html)上面免費(fèi)下載。CTS的目的就是讓Android設(shè)備(如:手機(jī))開(kāi)發(fā)商能夠開(kāi)發(fā)出兼容性更好的Android設(shè)備。 GTS:

    GMS全稱(chēng)為Google Mobile Service,即谷歌移動(dòng)服務(wù)。GMS是Google開(kāi)發(fā)并推動(dòng)Android的動(dòng)力,也是Android系統(tǒng)的靈魂所在。 Verify:

    CTS都是指令自動(dòng)測(cè)試,但是還有一些測(cè)試是必須手動(dòng)完成的,這個(gè)是verify測(cè)試就是手動(dòng)測(cè)試。

    1.準(zhǔn)備資料:

    GMS認(rèn)證的視頻文件—android-cts-media-1.0.zip:

    使用方法一:

    新建test文件夾(內(nèi)有bbb_full,bbb.short,copy_media.sh,make_zip.sh,README.txt ),手機(jī)需拷貝android-cts-media-1.0.zip解壓到test目錄中(在不支持存儲(chǔ)空間的情況下,使用T卡替代)

    使用方法二:

    進(jìn)入android-cts-media-1.1目錄下,執(zhí)行:

    . /copy_media.sh all,或./copy_media.sh

    就可以把視頻復(fù)制手機(jī)上了,非常的方便和快。 android-cts文件

    解壓android-cts-4.4_r1-linux_x86-arm.zip CtsDeviceadmin.apk

    此apk位于(android-cts epository estcases)目錄下 android-gts文件

    解壓gts-2.1_r1.zip CtsVerifier.apk

    ( 解壓android-cts-verifier-4.4_r3-linux_x86-arm.zip)

    這些資料可以從官網(wǎng)上下載:

    http://source.android.com/compatibility/downloads.html(官網(wǎng))

    也可以是客戶(hù)提供。

    2.手機(jī)端準(zhǔn)備

    Need insert empty SD card Insert valid SIM card 設(shè)置手機(jī)語(yǔ)言為英語(yǔ):進(jìn)入Settings–Language&input–Language設(shè)為English(UnitedStates) 輸入法默認(rèn)使用android輸入法,Settings–Language&input–Default—English(US) 手機(jī)軟件需是User版本(請(qǐng)用adb remount命令查看),需寫(xiě)IMEI(請(qǐng)按*#06#查看)、MAC碼(settings–about phon–statu–wlan mac address) 去掉鎖屏(Settings –Security –Screen lock–none ) 設(shè)置屏幕超時(shí)為最長(zhǎng)時(shí)間30分鐘(Settings–Display–Sleep–30minutes) 進(jìn)入Settings–Date & time–取消Automatic date&time勾選,取消Automatic time zone 勾選, Select time zone,選擇GMT-8:00 Pacific Time (注:當(dāng)實(shí)行夏令時(shí)后,Pacific Tim會(huì)變成GMT-7:00) 打開(kāi)developer options,Settings–About phone–快速點(diǎn)擊Build number 7次 Settings–developer options–stay awake and usb debugging allow mock locations 勾選 打開(kāi)WIFI并連接AP(需要可翻墻的網(wǎng)絡(luò),因?yàn)闇y(cè)試過(guò)程中需要連接google的服務(wù)器) 打開(kāi)藍(lán)牙,Settings–Bluetooth 打開(kāi)GPS,Settings—Location—開(kāi)啟 打開(kāi)數(shù)據(jù)連接,下拉狀態(tài)欄—選中Data on 安裝CtsDeviceadmin.apk

    可以復(fù)制到sd卡上再安裝,也可以使用命令安裝:adb install ‘/home/android/CTS_hexiaoming/hexiaoming/CtsDeviceAdmin.apk’ 將test文件夾復(fù)制到sd卡上,也可以使用命令:

    adb push ‘/home/android/CTS_hexiaoming/hexiaoming/test’ /sdcard/test

    (或者進(jìn)入到android-cts-media-1.1目錄下,執(zhí)行:

    . /copy_media.sh all,或./copy_media.sh) Settings—Security–Device administrators–勾選上 device administrators列表前三個(gè)選項(xiàng),最后一個(gè)不勾選 運(yùn)行時(shí)讓屏幕是home主界面上 運(yùn)行過(guò)程中不要觸摸屏幕及按鈕

    注意:

    - While a device is running tests, it must not be used for any other tasks

    - Before start CTS, device at the home screen

    - Do not press any keys on the device while CTS is running

    - Make sure the AP is usability and connectedly.

    - Make sure USB cable is stability

    3.PC端:(Ubuntu系統(tǒng))

    3.1 CTS測(cè)試

    android-cts文件(解壓)

    1. 用USB線(xiàn)連接Linux PC

    2.打開(kāi)終端,進(jìn)入android-cts/tools目錄,輸入./cts-tradefed.終端顯示:

    androidapkfree

    (如果沒(méi)有這行,說(shuō)明設(shè)備沒(méi)有和PC連通)

    3.輸入run cts–plan CTS,開(kāi)始測(cè)試CTS

    4.測(cè)試完成后會(huì)自動(dòng)生成xml報(bào)表,在anroid-cts/repositZhttp://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcnkvcmVzdWx0c8S/wrzW0Ch0ZXN0UmVzdWx0LnhtbCkuPGJyIC8+DQo1LkxPR9DFz6LU2sS/wrzPwqO6KGFuZHJvaWQtY3RzIGVwb3NpdG9yeWxvZ3MpPC9wPg0KPHA+PHN0cm9uZz7Su7Djx+m/9qOsQ1RTsuLK1NK7tM6yu8TcyKuyv82ouf2jrMTHw7TI57rO1ruy4srURmFpbM/uwcujvzwvc3Ryb25nPjwvcD4NCsrWtq/Q3rjEdGVzdFJlc3VsdC54bWyjrMq508NnZWRpdLTyv6q4w87EvP4oZ2VkaXQgdGVzdFJlc3VsdC54bWwpoaMNCjxwPtGh1PGy6dXSy9HL92ZhaWxlZM/uo6zM5ru7zqpub3RFeGVjdXRlZKOsyLu687GjtOajrMjnzbyjujxiciAvPg0KPGltZyBhbHQ9"這里寫(xiě)圖片描述" src="http://www.2cto.com/uploadfile/Collfiles/20150728/2015072808544242.png" title="/" />

    重新輸入./cts-tradefedcts-tf-> run cts–continue-session session_id

    PS: session_id可以通過(guò)在CTS命令行里輸入l r查看到。比如輸入l r查看到的session_id為0那就應(yīng)該在CTS的命令行輸入 run cts –continue-session 0這樣就會(huì)只會(huì)繼續(xù)測(cè)試那些之前fail的項(xiàng)而不會(huì)去測(cè)試那些已經(jīng)pass的項(xiàng)

    我們?nèi)绾涡薷膱?bào)告

    對(duì)于有的測(cè)試項(xiàng),我們沒(méi)有環(huán)境,過(guò)不了。但是我們可以確定此項(xiàng)可以pass,那么我們可以直接修改報(bào)告:

    我們?cè)诟膱?bào)告的時(shí)候,參考要修改的測(cè)試項(xiàng)的前一個(gè)pass項(xiàng)和后一個(gè)pass項(xiàng),對(duì)應(yīng)修改就可以了,非常的簡(jiǎn)單。修改后,我們?cè)僮屍渲匦屡芤幌?,生成新的測(cè)試報(bào)告就可以。

    如果,我們單獨(dú)跑包或類(lèi):

    To run a test package:

    ‘run cts –package ’

    run cts -p android.os

    To run a test class:

    ‘run cts –class ’

    run cts -c android.app.cts.SystemFeaturesTest -m testSensorFeatures

    run cts -c android.os.cts.Asyn

    查看更多cts命令信息:

    ‘run cts –help’

    l p————查看有那些功能

    l packages——查看有那些包

    注意事項(xiàng):

    1.CTS 4.0的命令和CTS 2.3/2.3完全不同,所以在進(jìn)入CTS后,先輸入help看看命令的格式和意思。

    2.正常測(cè)試一次CTS4.0,需要6-9小時(shí)。所以,測(cè)試時(shí)請(qǐng)接上電源,并盡量在晚上測(cè)試,不會(huì)影響設(shè)備的使用

    3.CTS是自動(dòng)化測(cè)試,測(cè)試過(guò)程中不需要人的干預(yù)。如果在上班時(shí)間,每1-2小時(shí)觀察下即可

    4.CTS4.0在測(cè)試過(guò)程中斷開(kāi)、終止都不會(huì)生成測(cè)試報(bào)告,所以,測(cè)試前要保證USB連接穩(wěn)定和平臺(tái)設(shè)置

    5.CTS執(zhí)行run cts–plan CTS時(shí),會(huì)搜索android-cts/repository/results中的歷史報(bào)表文件夾。如果文件有很多,啟動(dòng)速度會(huì)非常慢。所以,請(qǐng)定期清理results文件夾中的歷史報(bào)表(直接刪除報(bào)表文件夾即可)

    常見(jiàn)問(wèn)題:

    有時(shí),復(fù)制會(huì)導(dǎo)致一些權(quán)限問(wèn)題,這時(shí),我們可以運(yùn)行sudo chmod 0777 filename來(lái)提高權(quán)限。 CTS測(cè)試 快速入門(mén)—-MTK—非常重要

    https://onlinesso.mediatek.com/_layouts/15/mol/topic/ext/Topic.aspx?id=53

    3.2 XTS測(cè)試:

    android-gts文件(解壓gts-2.1_r1.zip)

    XTS測(cè)試和CTS是一樣的,只是要把命令稍微對(duì)應(yīng)的改一下就可以了:

    run xts–plan XTS

    run xts–continue-session session_id

    run xts -p android.os

    run xts -c android.app.cts.SystemFeaturesTest -m testSensorFeatures

    3.3 手動(dòng)測(cè)試 CTS-verifier:

    CtsVerifier.apk—-( 解壓android-cts-verifier-4.4_r3-linux_x86-arm.zip)

    這個(gè)是手動(dòng)測(cè)試,我們只需要安裝此apk,然后按照說(shuō)明一步一步操作就可以了。最后,我們導(dǎo)出報(bào)告。

    androidapkfree

    注意的事情:

    這個(gè)測(cè)試還是有測(cè)試順序的,一般Policy Serialization Test 這個(gè)測(cè)試項(xiàng)最后一個(gè)測(cè)試,因?yàn)榇隧?xiàng)會(huì)導(dǎo)致后面的Keyguard Password Verification項(xiàng)過(guò)不了。我們可以一開(kāi)始就測(cè)試Keyguard Password Verification,最后一個(gè)測(cè)試Policy Serialization Test。 Camera的測(cè)試項(xiàng),我們要一個(gè)一個(gè)測(cè)試,不能直接按pass直接過(guò),就是因?yàn)闇y(cè)試的報(bào)告里有這些測(cè)試項(xiàng)的詳細(xì)信息。 在測(cè)試Accelerometer Measurement Tests項(xiàng)前,我們?cè)趕ettings—Sound—Default notification sound選擇一個(gè)默認(rèn)值,否則有可能因?yàn)榇藳](méi)有設(shè)置,apk會(huì)crash,此項(xiàng)過(guò)不了。 Streaming Video Quality Verifier測(cè)試項(xiàng)中,RTSP的三項(xiàng),有wifi的話(huà)可以過(guò),但是HTTP PROGRESSIVE的三項(xiàng)是過(guò)不了的。也就是說(shuō)Streaming Video Quality Verifier測(cè)試項(xiàng)是過(guò)不了的,這是正常的現(xiàn)象。

    USB Accessory Test有時(shí)候執(zhí)行命令,是沒(méi)有效果,這個(gè)有可能是電腦的原因,換臺(tái)電腦多試幾次。

    USB Accessory Test in CTS Verifier, Please follow up below steps to test this item:

    1) Install CTSVerifier.apk to the phone device.

    2) Add “18d1:2d01” device to /etc/udev/rules.d/51-android.rules, and restart

    About add “18d1:2d01” device to /etc/udev/rules.d/51-android.rules,

    Please hlep to refer SOP part of “Setup CTS Environment (3/4)”

    Ubuntu 10.4

    New a udev configuration file for the usb and change the mode

    sudo touch /etc/udev/rules.d/51-android.rules

    sudo chmod a+rw /etc/udev/rules.d/51-android.rules

    Add the below string in 51-android-rules to setup the USB

    SUBSYSTEM==”usb”, ATTRS{idVendor}==”0bb4”, ATTRS{idProduct}==“0c03”, MODE=”0666“

    Restart the udev service to update the configuration

    sudo restart udev

    Restart the Ubuntu

    After connecting the Android device to the PC, type lsusb and you should see the below string if the connection is success:

    example:

    Bus 002 Device 002: ID 0bb4:0c03 High Tech Computer Corp.

    3) Connect the phone to a linux pc, with adb enabled

    4) Run cts-usb-accessory on linux PC, wait until “Found android device in accessory mode (18d1:2d01)

    5) Device will pop a prompt to cts-verifier, start the CTS Verifier and run USB Accessory test.

    6) make sure no other devices connnect to the PC.

    Bluetooth Test測(cè)試項(xiàng),比較需要時(shí)間和耐心,要慢慢來(lái)操作。特別是BLE Client Test測(cè)試項(xiàng)更是如此。我們測(cè)試此項(xiàng)時(shí),可以先記下mac地址(可以寫(xiě)一些簡(jiǎn)單的mac地址,如(11:11:11:11:11:11) mac地址要區(qū)分大小寫(xiě),這個(gè)也要注意),這是因?yàn)榇隧?xiàng)一般要測(cè)好多次才能pass,每次都要求從頭開(kāi)始,每次都要輸入mac地址。根據(jù)測(cè)試經(jīng)驗(yàn),一般4.BLE Reliable Write 這個(gè)才是此測(cè)試能否通過(guò)的關(guān)鍵,我一般是4.BLE Reliable Write在倒數(shù)第二步來(lái)測(cè)試,并且多輸入幾次信息(請(qǐng)不要每次只輸入一個(gè)字母),直到另一部手機(jī)的Waiting on reliable write from client測(cè)試項(xiàng)顯示綠色,才最后執(zhí)行8.BLE Client Disconnect就可以通過(guò)此項(xiàng)測(cè)試。

    data backup test測(cè)試項(xiàng):

    首先在cts verifier中隨便進(jìn)行一項(xiàng)測(cè)試,打開(kāi)設(shè)置中的備份和恢復(fù),點(diǎn)擊 generate test data->ok

    adb shell bmgr enable true

    adb shell bmgr transport android/com.android.internal.backup.LocalTransport

    adb shell bmgr run

    adb uninstall com.android.cts.verifier

    adb install F:CTS4.0CTS4.0.3_r2apk4.0.3_r2CtsVerifier_4.0.3_r1.apk

    測(cè)試完,我們使用adb push命令將測(cè)試報(bào)告導(dǎo)出就可以了。

    adb pull /sdcard/ctsVerifierReports /home/android/tmp

    3.4 測(cè)試結(jié)果的一些注意:

    測(cè)試結(jié)果表頭的問(wèn)題,在文檔中要求CTS和GTS中的設(shè)備信息的Build Fingerprint中的簽名文件類(lèi)型是release-key,也就是說(shuō),我們測(cè)試的軟件版本的簽名要使用release-key,如下圖所示:

    androidapkfree

    在文檔中要求GTS項(xiàng)的測(cè)試結(jié)果中的Properties屬性應(yīng)該包括ro.com.google.gmsversion、ro.com.google.clientidbase,并且有的客戶(hù)對(duì)ro.com.google.clientidbase的名字是有要求的。如下圖,就缺少ro.com.google.clientidbase的項(xiàng)。

    androidapkfree

    4 Fail項(xiàng)的處理

    給高通提case,給MTK提eservice,因?yàn)檫@個(gè)一般自己能解的比較少,主要還是要靠高通和MTK來(lái)解。 慢慢積累自己的fail項(xiàng)庫(kù) 慢慢積累自己處理fail項(xiàng)的能力

    以上就是關(guān)于androidapkfree相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢(xún),客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    advantage的詞根詞綴(advantage詞根詞綴解析)

    南京有animate店嗎(南京animate專(zhuān)柜還在嗎)

    anyconnect加速器安卓下載(anyconnect加速器)

    小紅書(shū)我收藏的在哪(小紅書(shū)里我收藏的東西在哪里看)

    有誰(shuí)推薦游戲麻將好玩(有誰(shuí)推薦游戲麻將好玩的軟件)