解讀Helloworld的代碼

簡述:

啓動過程:守護進程--->VM--->app

AndroidManifest.xml:配置文件


package--->mainifest--->activity-->layout


步驟: 1.編譯dex

2.打包apk

3.啓動選擇target設備

4.上傳apk

5.安裝apk

6.啓動主activity


eclipse:中有用的結構

DDMS:target

-->Allocation Tracker:內存跟蹤小工具

-->Emulator:模擬器

-->Heap:

-->Threads:

Log:打印log調試

-->Time:時間

-->pid:process

-->Tid:Thread ID

-->UID:user 用戶id

Log中的方法:(詳見development .android很詳細)

assert:

verbose:

debug:(藍色)

info:(綠色)

warn:(黃色)

error:(紅色)

   注:android中的Uid、Pid、Tid

pid 是process 進程id , uid 是user 用戶id;

      如果是root,那麼你的uid就是0,0爲最高權限;

可以通過pid找到這個進程的uid,沒有試過通過Uid找到所有Pid,大家可以試一下;
每一個不同的程序都能有一個UId,但是一個應用裏面可以有多個PId;
一個用戶可以打開多個進程(Pid),並且這些進程的uid是一樣的;
一個pid對應一個進程,每次打開時系統都會賦予不同的pid,但是uid是當你安裝Apk時,系統賦予的,是不變的,除非你卸載了重裝,又會賦予一個Uid;

Tid(thead id)可以理解爲線程的Id,這個更容易理解。


Log分析:

log源碼:public static native int println_native(){

}:調用C類庫中的語言方法


出錯了

/data/log

手機有兩種出廠模式:

1.development

2.user--->沒有log


Log的文件組成:

1:系統基本信息,包括內存,CPU,進程隊列,虛擬內存,垃圾回收等信息


2.

3,。

發佈了35 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章