Androidのパフォーマンスとは、パフォーマンスの問題をどのように分析しますか?
我々がよく言う性能には、通常、以下のいくつかの側面が含まれています.
1.アプリケーションの起動速度
これは、ユーザー体験に基づく角度でも、製品宣伝に基づく角度でも、主流メーカーからますます重視されています.a.ユーザー体験の観点から、この点は理解に難くありません.携帯電話のハードウェアのアップグレードに伴い、ユーザーもますます忍耐力がなくなり、待ちたくないということです.つまり、ユーザーがアプリケーションをクリックすると、アプリケーションの操作インタフェースがすぐに現れることを望んでいます. b.製品宣伝に基づく観点:アプリケーションの起動速度は非常に直感的に現れるため、多くの評価サイトで比較されることが多い!
2.オン/オフ速度(工場出荷時の設定速度の回復を含む)
3.滑らかさ:流暢度一般シーン別流暢度:スライドの流暢度、ページ切替の流暢度; ゲームシーンの流暢度:タッチパネルがフォローしているか、FPSが安定しているか、ネットワークが安定しているか.現在、携帯電話の性能がますますよくなると同時に、携帯電話ゲームがますます火をつけているため、特に王者の栄光、鶏類を食べるゲームの爆発が続いている.各メーカーはゲームの流暢度を戦略の高さに言及し、NUBIAの紅魔携帯電話、小米のサメ携帯電話、一部のメーカーはゲームメーカーと協力して、ゲームを深く最適化することを選んだ.例えば、oppoと王者栄光チームのマルチコアマルチスレッド最適化、vivoが王者栄光周年のカスタマイズ携帯電話を出したなどだ.
4.走点:各人は製品宣伝の角度がユーザー体験よりはるかに大きいと感じている. しかし、ライン上の「不服なら点数をつける」という雰囲気のため、各メーカーも点数を最適化しなければならない.もちろん、ユーザーにとって、走分は確かに機械全体のハードウェアレベルを反映しているが、走分がユーザーの基礎使用体験を目的としていないと、個人的には「ユーザーをだます」ような感じがする.ここでいう基礎体験とは、メーカーが言う最適化であり、走分ソフトに対して最適化を行うのではなく、走分が高いか低いかは水が流れる結果にすぎない.例えば、我が社の携帯電話のスライドの最適化はとても良くて、とても流暢で、それでは自然走分ソフトウェアの中でスライドの流暢性についてこの部分の分は自然に高いです.対立が予想されるのは
技術的な面から見るとこのいくつかの次元は
起動速度の適用:
アプリケーションの起動速度はユーザーにとって、クリックから最初のインタフェースのロードが完了した時間を指す.
しかし、研究開発にとって、ここでは以下のいくつかの段階に分けることができます.
a.クリックするとフレームがタッチスクリーンを受信する中断時間からlauncherがinputを受信するイベントまで.
b.launcherはクリックイベントに応答してアプリケーションに第1フレームを描画した.
c.第1フレームからページへのロードが完了する.aとbの段階は本当のシステムの反応の時間で、cの段階は主にアニメーションの時間で、異なるメーカーは自分の需要によって異なるアニメーションの時間を定義することができます.したがって、アプリケーションの起動速度、特にホット起動時には、アプリケーションの起動アニメーションが長くなることに注意してください.
分析応用起動の一般的な考え方は以下の通りである.
前置条件(同じまたは近いプラットフォーム、これは後述するすべてのトピックの前置条件):まず、試作機と競合機器の取り付けのサードパーティ製アプリケーションが同一バージョンであることを保証し、これは異なるバージョンのアプリケーション自体による起動速度の違いを排除する. アプリケーションは、サードパーティ製以外のアプリケーションでは、インストール時にandroidシステムのデフォルトのcompiler modeがandroid-N以前のinerprter-onlyであるため、インストール時にandroidシステムのデフォルトのcompiler modeがandroid-Nである.しかし、インストールが完了すると、speed-profileに最適化されます.この2つのモードはアプリケーションの起動速度に大きな影響を及ぼす.
問題分析の考え方:コールドスタート本当のコールドスタートかどうか見てみましょう.メーカーが一部のアプリケーションの起動速度を速めるために、このアプリケーションのプロセスを長く維持する可能性があるからです.温起動である可能性もあります.つまり、強制的に停止すると、アプリケーションのプロセスがすぐに発生します. ホットスタートは主にアニメの時間が同じかどうか cpu/gpuのboostポリシーが同じかどうか見てみましょう.例えば、起動中のコア数、boostのfreqの大きさ、boostの時間、sched_boostの多くは0,1,2で、やはり3. 上記の条件が同じならsystraceをつかんで、具体的に遅い部分を見て
オン/オフ:電源を入れると次のlogが表示されます(詳細な分析例は後述します)
シャットダウン:logcat|grep-i「shutdown」でシャットダウンにかかる時間を見ることができます(詳細は後述します)
ゲーム:ゲームは2つの状況に分かれています
ゲームのフレームレートは安定しています:しかし、カートンを感じたり、タスクの移動が困難を感じたりして、これはタッチスクリーンに関連する可能性があります.このときはuserdugのバージョンを使って、さらに分析したほうがいいです.一般的には、次のような状況があります.ファームウェアが報告されていない ファームウェアは報告されているが、駆動フィルタリングされている ファームウェアドライバはすべて報告されており、この時点でフレームワークをさらに分析する
ゲームのフレームレートが不安定で、これはまた次の2つの状況に分けられます.ゲームのあるシーンは、フレームレートが不安定なままであり、これはcpuポリシーに関連している可能性が高い. フレームダウンのこのシーンは、最初は安定していたが、発熱してから不安定になった.これは温度制御戦略に関連しているはずで、温度制御オフ核限周波数によるものである.
通常のシーンのスムーズさ:これを比較するには、競合品がカートンしているかどうかを見たほうがいい.競合品がスムーズであれば、systraceをつかんで競合品機器のcpu戦略がどのようなものかを見ながら、oversrcoller boost、scroller boostが有効かどうかをチェックすることができる.
システム全体のカートン状況に遭遇した場合、分析の構想は以下の通りである.低電状態かどうかをチェックすると、低電状態はBCLをトリガーし、高通プラットフォームのように一般的に10%である場合、この時点ですべての大核を閉鎖したり、核を打って任務を逃さない. 発熱の有無を確認し、核を閉じる TOPコマンドで、クレイジーな暫定cpuリソースに何か応用があるかどうか見てみましょう. 充電器(パソコン)が詰まっていない、充電器カードが入っていない場合は、オフラインのsystraceをつかんで分析(高通プラットフォーム):
1.アプリケーションの起動速度
これは、ユーザー体験に基づく角度でも、製品宣伝に基づく角度でも、主流メーカーからますます重視されています.
2.オン/オフ速度(工場出荷時の設定速度の回復を含む)
3.滑らかさ:
4.走点:
if(packagename.equals("antutu")){
cpu
}
技術的な面から見るとこのいくつかの次元は
起動速度の適用:
アプリケーションの起動速度はユーザーにとって、クリックから最初のインタフェースのロードが完了した時間を指す.
しかし、研究開発にとって、ここでは以下のいくつかの段階に分けることができます.
a.クリックするとフレームがタッチスクリーンを受信する中断時間からlauncherがinputを受信するイベントまで.
b.launcherはクリックイベントに応答してアプリケーションに第1フレームを描画した.
c.第1フレームからページへのロードが完了する.aとbの段階は本当のシステムの反応の時間で、cの段階は主にアニメーションの時間で、異なるメーカーは自分の需要によって異なるアニメーションの時間を定義することができます.したがって、アプリケーションの起動速度、特にホット起動時には、アプリケーションの起動アニメーションが長くなることに注意してください.
分析応用起動の一般的な考え方は以下の通りである.
前置条件(同じまたは近いプラットフォーム、これは後述するすべてのトピックの前置条件):
問題分析の考え方:
オン/オフ:電源を入れると次のlogが表示されます(詳細な分析例は後述します)
1
PBL/SBL/HYP/ LK boot loader
Bootloader time
2
Kernel boot up +
Initialize native daemons
boot_progress_start
3
Zygote class preloading
boot_progress_preload_start
boot_progress_preload_start
boot_progress_preload_end
boot_progress_preload_end
boot_progress_system_run
4
Package scanning
boot_progress_pms_start
boot_progress_pms_system_scan_start
boot_progress_pms_data_scan_start
boot_progress_pms_scan_end
boot_progress_pms_ready
5
Service initialization
boot_progress_ams_ready
6
UI/Apps start
boot_progress_enable_screen
Total boot up time
= Bootloader time (1) + Time from boot_progress_enable_screen
シャットダウン:logcat|grep-i「shutdown」でシャットダウンにかかる時間を見ることができます(詳細は後述します)
ゲーム:ゲームは2つの状況に分かれています
ゲームのフレームレートは安定しています:しかし、カートンを感じたり、タスクの移動が困難を感じたりして、これはタッチスクリーンに関連する可能性があります.このときはuserdugのバージョンを使って、さらに分析したほうがいいです.一般的には、次のような状況があります.
ゲームのフレームレートが不安定で、これはまた次の2つの状況に分けられます.
通常のシーンのスムーズさ:
システム全体のカートン状況に遭遇した場合、分析の構想は以下の通りである.
1. wifi
2. PC ( ping ip )
3. usb , usb , :adb tcpip 5555
4. usb
5. :adb connect ip ( adb connect 192.168.1.111)