安卓游戲如何檢測設備內核
A. 怎麼看安卓手機解析度和手機的CPU的內核版本(處理器)
使用360優化大師,安卓優化大師,安兔兔就可以看到手機硬體信息
具體操作如下
在網上(手機上)下載一個360優化大師;
打開軟體;
底部最右邊(第4個選項),點擊硬體檢測,就可以看到手機硬體信息了。
部分手機系統信息查看也能看到手機硬體信息(比如:小米系統);
B. 如何測試安卓(Android)系統的流暢度
測試方法一:系統自帶-開發者模式
實際上,為了方便開發者測試,安卓本身就內置了流暢度檢測的功能。不過,這需要我們開啟隱藏的開發者選項。如果你在用原生系統,那麼開啟開發者選項的方法很簡單,進入到設置菜單「關於手機」頁面,點擊數次「版本號」,即可開啟開發者選項。如果用的是其他ROM,方法也許有所不同,比如說魅族的Flyme開啟開發者選項的方法是在撥號界面輸入「*#*#6961#*#*」,其他機器方法也各有不同,大家可以參照廠商的說明。
進入到開發者選項,可以看到有「GPU呈現模式分析」的選項,開啟後即可以條形圖和線形圖的方法顯示系統的界面響應速度,可以用以觀察系統流暢度。那麼要如何根據曲線判斷系統是否流暢呢?實際上這個曲線表達的是GPU繪制每一幀界面的時間,只要不超過頂部綠線,都可以視為足夠流暢。
開啟GPU呈現模式分析
FPS Meter可以顯示最大最小幀數以及平均幀數
FPS Meter可以測試界面幀數,不過某些手機如果界面靜止,幀數會為0。FPS Meter除了測量系統界面幀數外,還可以用來測量游戲的幀數,所以用FPS Meter來測試某部安卓機游戲性能多強也是個很好的選擇。
當然,FPS Meter也並非十全十美。由於屬於第三方App,所以可能會有一些兼容性問題。某些安卓機或者ROM使用FPS Meter可能會不兼容,即使成功開啟了幀數顯示也沒法測量到准確數值,而某些設備使用FPS Meter甚至會死機。不過在大多數情況下,這款App還是相當值得信任的。
安卓在多個版本中都通過新技術提升了流暢度,比如說安卓2.3引入Dalvik、安卓4.0引入GPU界面繪制、安卓4.1引入黃油計劃、安卓4.3引入Trim以及安卓4.4引入ART等等。
H5頁面載入速度:window.performance.timing
Android以上測試方法不適用h5頁面
如何分析頁面整體載入速度:
主要是查看指標值PAGET_頁面載入時間,此指標指的是頁面整體載入時間但不含(onload事件和redirect), 此指標值可直接反應用戶體驗, 從此項指標可以知道指定某時間段的頁面載入速度值,以及和天,周,月的對比狀況.也可以查詢指標ALLT_頁面完全載入時間, 可以查詢到從瀏覽器開始導航(用戶點擊鏈接或在地址欄輸入url或點刷新,後退按鈕)到頁面onload 事件js完全跑完的所有時間.如果發現頁面載入速度有增加或減少,則可以分項查詢前面表格中的每個指標值,總的來說他們的關系如下:
dom開始載入前所有花費時間=重定向時間+域名解析時間+建立連接花費時間+請求花費時間+接收數據花費時間
pageLoadTime頁面載入時間=域名解析時間+建立連接花費時間+請求花費時間+接收數據花費時間+解析dom花費時間+載入dom花費時間
allLoadTime頁面完全載入時間=重定向時間+域名解析時間+建立連接花費時間+請求花費時間+接收數據花費時間+解析dom花費時間+載入dom花費時間+執行onload事件花費時間
resourcesLoadedTime資源載入時間=解析dom花費時間+載入dom花費時間
流暢度暫時沒有發現好用的測試衡量工具,開發層面了解,主要是根據log分析
C. app如何識別是安卓設備,還是安卓模擬器的
識別的方法如下。
1.獲取藍牙名稱。模擬器的藍牙名稱大多數為null。
2.測試光感測器。一般的按住設備都有光線感測器,模擬器是沒有的。
3.測試CPU類型。手機是arm架構,模擬器基本是intel和amd兩種。
拓展資料
安卓模擬器是能在電腦上模擬安卓操作系統,並能安裝、使用、卸載安卓應用的軟體,它能讓你在電腦上也能體驗操作安卓系統的全過程。
參考資料安卓模擬器_網路
D. 手機游戲怎麼做性能測試
如何做手游性能測試,首先要了解手游性能測試指標,大概分為以下幾個:包體大小、CPU佔用率、內存佔用率、電量流量耗用量、FPS(每秒傳輸幀數)
這里推薦你一個自動化測試平台WeTest性能測試平台網頁鏈接(騰訊游戲官方推出的)
E. 玩游戲後手機顯示修改內核什麼意思
一、 提取 zImage 內核文件
在提取zImage 前,必須確保自己擁有 root 許可權。
輸入命令:
ls -l /dev/block/platform/msm_sdcc.1(具體設備具體定)/by-name,
找到 boot 這一項,記下路徑
將boot導出為boot.img
dd if=/dev/block/mmcblk0p19 of=/data/local/boot.img
adb pull /data/local/boot.img boot.img
使用abootimg工具,該工具見附件解開boot.img
將 zImage 文件復制為文件名為 z.gz 的文件,並使用 010editor 查找十六進制1f 8b 08 00,找到後把前面的數據全刪掉,使 kernel.gz 文件變成標準的 gzip 壓縮文件,這樣子就可以使用 gunzip 解壓了。
命令:gunzip z.gz
生成文件z就是祼二進制文件zImage。
二、 提位、修改關鍵代碼
zImage文件可以直接使用 IDA 去打開,但需要設置參數。
在上圖,設置處理器類型為ARM Little-endian,點【ok】後,彈下圖
在 ROM start address 和 Loading address 填0xc0008000,點【ok】,IDA顯示效果如下圖所示,沒有函數名,不方便定位代碼。
先回到root下的adb shell,輸入命令:
echo 0 > /proc/sys/kernel/kptr_restrict
關閉符號屏蔽
再輸入以下命令查看這兩函數的地址
回到 IDA,按 g 跳轉到c01b083c(__task_pid_nr_ns)地址處,在游標放在在該函數處:
然後按x,彈出引用搜索框
在搜索框里,找到sub_c02b9ff8(proc_pid_status)地址對應的函數,雙擊它,如果 IDA 沒有分析出該函數,就進行以下操作:
按shift+f12,搜索TracerPid,找到以下項
雙擊它,看到
再雙擊【DATA XREF: sub_c02b9ff8+190】,IDA就能分析出sub_c02b9ff8函數了,然後重新搜索sub_c01b083c的引用。找到後,雙擊它,得以下圖:
經本人分析得到的修改方法是把MOVEQ R10, R0替換為MOV R10, #0,機器碼為00 A0 A0 E3,指令的文件偏移為(C02BA568-C0008000=2B2568),及把BL sub_C01B083C替換為MOV R0, #0,機器碼為00 00 A0 E3,指令的文件偏移為(C01B083C-C0008000=1A883C)。
至少,內核文件修改成功。
三、刷回手機
刷回前需要先打包 boot.img 文件
使用命令壓縮成z.gz:gzip -n -f -9 z
使用010editor 將 z.gz 的二進制數據覆蓋到原zImage 文件的1F 8B 08 00處的位置(新的z.gz文件必須比原 z.gz 文件小,並且回寫回去時不能改變原zImage文件的大小及修改原 zImage 文件後面的內容,否則會很麻煩),這時得到了zImage文件。
執行命令abootimg --create boot.img -f bootimg.cfg -k zImage -r initrd.img得到boot.img文件。
手機重啟進入刷機模式,然後,執行命令fastboot flash boot boot.img。
完成刷機後,重新開機,就大功告成了。
四、 還原磚頭
刷內核,不免會有刷成磚頭的情況。
使用步驟1中提取到的原版boot.img,在刷機模式下,執行 fastboot flash boot boot.img 就還原系統了。
F. 如何提取安卓內核
操作方法:
1、 下載bootimg.exe 放到D盤。
2、 把要提取的ROM包里的boot.img提取出來 放到bootimg文件夾目錄。
3、 運行cmd系統命令,進入D: bootimg目錄(D盤的話 先d: 然後再cd bootimg),接著輸入bootimg --unpack-bootimg。 解開bootimg文件,得到kernel和ramdisk.gz兩個文件,ramdisk.gz文件可以刪除。
4、把kernel文件改名為zImage。
5、找一個老版本的內核文件包,然後用zImage、bcm4329.ko分別替換老版本內核文件包中的同名文件, 路徑是: kernel/zImage 和system/lib/moles。
6、老內核隨便改什麼名字。刷機包裡面的META-INF裡面是簽名和刷機用的腳本什麼的。com/google/android/ updater-script文件是刷機時顯示的文字,用notepad打開,ui_print(" ")括弧裡面可以改成隨意文字,然後關閉保存,再就是可以刷進去了。
G. Android 檢測設備是否為模擬器
打開 Google 搜索 「模擬器」,各種模擬器映入眼簾。「逍遙安卓-超強安卓模擬器」、「天天模擬器」、「網易MuMu」、「BlueStacks藍疊安卓模擬器」、「夜神安卓模擬器」、「海馬玩模擬器」、「51模擬器」當然還有功能強大的「Genymotion」…… 經過上網查找,發現類似的帖子並不是太多,其中經過篩選,發現下面幾個通用的解決方案。 於是把上面兩種方案結合起來,就是: 經過在各個模擬器上測試,發現大多數都是可以檢測出來的,只有各別模擬器不可以檢測出來,其中包括「夜神安卓模擬器」。經過觀察與對比發現,夜神安卓模擬器有一個和其他模擬器以及手機(手頭的)不同的地方,就是「Build.SERIAL」是一個16位的字元串,而其他模擬器都是「unknow"或者"android",真機是 8 位的字元串,哈哈小樣被我抓住了吧,於是修改了檢測方法。 再次檢測,成功識別!! 由於手頭的手機有限,擔心將手機識別錯誤,於是在 weTest 平台抽樣對各品牌手機進行測試,果然不出所料,問題出現了。當測試到華為暢享5s的時候,竟然也被識別為模擬器。這下悲劇了,畢竟手機用戶還是主要的,可不能錯殺好人啊!!!經過觀察,發現問題出現在上面自作聰明加的一個判斷中 Build.SERIAL.length() > 8 ,這個手機的 Build.SERIAL 也是 16 位,這可如何是好??? App 中有一個跳轉到撥號盤的功能,當然在模擬器中無意點到這個按鈕的時候,App 居然 Crash 了,這引起了我的注意,加為之前在真機上從來沒有出現過問題,於是再次嘗試點擊這個按鈕,它再次如我所料的 Crash 掉了。我實然靈機一動,對啊這是模擬器,不能撥打電話,所以 Crash 了,這不正是解決方案嗎?(一不小心一個 Crash 竟然救了我)於是我在其他幾個模擬器中也嘗試點擊這個按鈕,結果是大部分都不支持這個操作,而且都是簡單粗暴的直接 Crash 。雖然不能 100% 的識別,但大多數還是可以以此來做識別憑證的。 接下來再修改方法,慢著!大多數平板也是不支持撥打電話的,由於手頭也是只有一台華為的平板,測試了一下,發現是跳轉到保存聯系頁面,這個至少也不是 Crash,所以算通過了。 最終將幾種方案整合修改後如下: 其實,我相信還有更好的方法去檢測,比如通過一些硬體特性,或者模擬器不能模擬的其他特性,但目前還沒有找到,如果你有好的辦法,歡迎分享!!!