1.獲得全域性context
activity基類public
class
extends
private
static context mcontext;
private
@override
public
void
oncreate()
/***
* 獲取context物件
*@return
*/public
static context getcontext()
/****
*@return
*/public
}}
使用public
class
baseactivity
extends
public context mcontext;
public
baseactivity()
}
2.系統啟動流程public
class
mainactivity
extends
baseactivity
public
void
click(view view)
}}
載入linux核心—啟動init程序—fork出zygote程序—fork出systemserver程序
在zygote開啟的時候,會呼叫zygoteinit.main()進行初始化
public
static
void
main(string argv) else
if (!argv[1].equals(""))
}......
private
static
boolean
startsystemserver()
throws methodandargscaller, runtimeexception catch (illegalargumentexception ex)
......
public
final
class
systemserver
// 載入本地服務
system.loadlibrary("android_servers");
// 初始化系統上下文物件
createsystemcontext();
}//建立systemservicemanager,後面的其他服務都要通過他來啟動
msystemservicemanager = new systemservicemanager(msystemcontext);
localservices.addservice(systemservicemanager.class, msystemservicemanager);
private void createsystemcontext()
我們看看attach方法裡面public
static activitythread systemmain() else
activitythread thread = new activitythread();
thread.attach(true);
return thread;
}
接下來我們繼續看systemservice裡面,會通過systemservermanager啟動其他服務。private
void
attach(boolean system)
4.fitssystemwindows屬性的使用//開啟核心服務
private void startbootstrapservices()
這個乙個boolean值的內部屬性,讓view可以根據系統視窗(如status bar)來調整自己的布局,如果值為true,就會調整view的paingding屬性來給system windows留出空間….
實際效果:
當status bar為透明或半透明時(4.4以上),系統會設定view的paddingtop值為乙個適合的值(status bar的高度)讓view的內容不被上拉到狀態列,當在不佔據status bar的情況下(4.4以下)會設定paddingtop值為0(因為沒有佔據status bar所以不用留出空間)。
在baseactivity裡面判斷
if (build.version
.sdk_int >= build.version_codes.kitkat)
Android學習筆記
android系列 第一期 第一課 android初步認識 今天我們來初步了解一下安卓吧。首先,說到android,大家都非常熟悉了,相信都用過android手機吧,android給我們的第一印象應該是它的logo 乙個小機械人,如下圖1所示。圖1 android logo 嗯,好,認識了andro...
Android學習筆記
1 android四大天王 1 activity 介面元件,使用者介面,整個應用程式的門面 2 intent 用於應用之間傳輸資料 3 service 承擔資料處理的工作 4 content provider 為應用提供資料 android檔案目錄 1 assets 2 res drawable 放...
android學習筆記
我是自學android的到現在也有一段時間了,大概三個月。我不是大牛,沒有很牛掰的技術,寫此部落格純粹是為了把我的錯誤記錄下來,印象深刻點,保證下次不會再犯,或許對別人也能有點用吧!以下是今天做的零零散散的筆記 adapter set nullpointerexception 在給某個元件設定值的時...