1.Android Studio開發(fā)環(huán)境搭建
所需的程序以及安裝順序
JDK:根據(jù)自己的系統(tǒng)下載相應(yīng)的JDK版本并進(jìn)行環(huán)境變量的配置。JDK官網(wǎng)下載
Android Studio和SDK:可在官網(wǎng)進(jìn)行下載,不過可能網(wǎng)速會過慢,也可以通過http://www.androiddevtools.cn/下載,該網(wǎng)址有Android Studio和SDK的集成包---bundle關(guān)鍵字的程序,另外還有許多安卓環(huán)境搭建需要的東西都可以在此網(wǎng)址進(jìn)行下載,大部分都有很準(zhǔn)確的注釋用以正確的操作成功。
Genymotion和Virtual Box:Genymotion是第三方的模擬器,相比官方自帶的模擬器在速度上非常快速的,而下載Genymotion就需要附帶下載Virtual Box虛擬機(jī),在Genymotion的官網(wǎng)中有集成了Virtual Box的版本,相應(yīng)的官網(wǎng)的鏈接為Genymotion官網(wǎng),如果無法下載集成的版本,也可到Virtual Box的官網(wǎng)下載其軟件。
2.項(xiàng)目的創(chuàng)建
3.Activitiy(Android組件中最重要的四大組件之一)
3.1Activity間的跳轉(zhuǎn)
3.1.1從MainActivity跳轉(zhuǎn)到另一個Activity
Intent intent = new Intent(MainActivity.this, OtherActivity.class);
startActivity(intent);
3.1.2自動跳轉(zhuǎn)到另一個Activity
Handler mhandler=newHandler();
mHandler.postDelayed(newRunnable()?
{
@Override
public void run() {I
ntentintent =newIntent(MainActivity.this,OtherActivity.class);??
? ? ? ? ? ? startActivity(intent);? ? ?
?? ? }? ? ? },1000);
3.2Activity間傳遞數(shù)據(jù)
3.2.1發(fā)送數(shù)據(jù)
Intent intent = new Intent(MainActivity.this, OtherActivity.class);
intent.putExtra(String name, DataType value);
startActivity(intent);
3.2.2獲取數(shù)據(jù)
Intent intent = getIntent();
if (intent != null) {?
?String title = intent.getStringExtra();?
?//還有g(shù)etIntExtra, getIntArrayExtra等等
}
3.2.3發(fā)送和接收對象
新建的類
public class Test implements Serializable{
? private String mName;??
private int mAge;
? public Test(String name, int age) {
? ? ? mName = name;? ? ?
?mAge = age
? }
}
對類的對象進(jìn)行序列化
intent.putExtra("test",newTest("kevin",18));
接收
(Test)intent.getSerializable("test")
3.3Activity的生命周期
需要注意的幾點(diǎn):
1.Activity實(shí)例是由系統(tǒng)自動創(chuàng)建,并在不同的狀態(tài)期間回調(diào)相應(yīng)的方法。一個最簡單的完整的Activity生命周期會按照如下順序回調(diào):onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy。稱之為entire lifetime。
2.當(dāng)執(zhí)行onStart回調(diào)方法時,Activity開始被用戶所見(也就是說,onCreate時用戶是看不到此Activity的,那用戶看到的是哪個?當(dāng)然是此Activity之前的那個Activity),一直到onStop之前,此階段Activity都是被用戶可見,稱之為visible lifetime。
3.當(dāng)執(zhí)行到onResume回調(diào)方法時,Activity可以響應(yīng)用戶交互,一直到onPause方法之前,此階段Activity稱之為foreground lifetime。
在實(shí)際應(yīng)用場景中,假設(shè)A Activity位于棧頂,此時用戶操作,從A Activity跳轉(zhuǎn)到B Activity。那么對AB來說,具體會回調(diào)哪些生命周期中的方法呢?回調(diào)方法的具體回調(diào)順序又是怎么樣的呢?
開始時,A被實(shí)例化,執(zhí)行的回調(diào)有A:onCreate -> A:onStart -> A:onResume。
當(dāng)用戶點(diǎn)擊A中按鈕來到B時,假設(shè)B全部遮擋住了A,將依次執(zhí)行A:onPause -> B:onCreate -> B:onStart -> B:onResume -> A:onStop。
3.4Activity標(biāo)題欄的隱藏
在onCreate方法中添加requestWindowFeature(Window.FEATURE_NO_TITLE);
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
}
4.多姿多彩的控件世界
比較最常用的控件 一
控件View的通用屬性:寬高、顏色、邊距、是否可見、內(nèi)容居中、
點(diǎn)擊事件等
TextView 顯示文本
EditText 編輯框
Button 點(diǎn)擊按鈕
.9圖 一種可拉伸的圖:上左——拉伸,下右——填充。
比較最常用的控件 二
ImageButton 圖片按鈕
ImageView 圖片
SeekBar 滑動條
RatingBar 評分條
Progressbar 進(jìn)度條
比較最常用的控件 三
WebView:加載網(wǎng)頁
ListView:顯示列表
GridView:顯示表格式列表
ScrollView:內(nèi)容可滾動視圖
SufaceView:非常重要的繪圖容器
5.常用技巧(快捷鍵)
5.1折疊/展開代碼塊(Collapse Expand Code Block)
描述:該操作提供一種方法,讓你隱藏你不關(guān)心的部分代碼,以一種較為簡潔的格式顯示關(guān)鍵代碼。一個有意思的用法是隱藏匿名內(nèi)部類的代碼,讓其看起來像一個Lambda表達(dá)式。
快捷鍵:Cmd + “+”/”-“(OS X)、Ctrl + Shift + “+”/”-“(Windows/Linux);
更多:可以在Settig → Editor → General → Code Folding 中設(shè)置折疊規(guī)則。
5.2查找操作(Find Action)
描述:輸入某個操作的名稱,快速查找,對于沒有快捷鍵的部分操作這是一個很有用的技巧。
快捷鍵:Cmd +Shift + A(OS X)、Ctrl + Shift + A(Windows/Linux);
更多:當(dāng)某個操作是有快捷鍵的,會顯示在旁邊。
5.3查找補(bǔ)全(Find Complection)
描述:當(dāng)你在一個文件中進(jìn)行查找時,使用自動補(bǔ)全快捷鍵可以給出在當(dāng)前文件中出現(xiàn)的建議單詞;
快捷鍵:Cmd + F(OS X),Ctrl + F(Windows/Linux),輸入一些字符,然后使用自動補(bǔ)全;
5.4在方法和內(nèi)部類之間跳轉(zhuǎn)(Move Between Methods and Inner Classes)
描述:該操作讓光標(biāo)在當(dāng)前文件的方法或內(nèi)部類的名字間跳轉(zhuǎn)。
調(diào)用:Navigate → Next Method/Previous Method;
快捷鍵:Ctrl + Up/Down(OS X)、Alt + Up/Down(Windows/Linux);
5.4擴(kuò)大/縮小選擇(Extend/Shrink Selection)
描述:該操作會在上下文逐漸擴(kuò)大/縮小當(dāng)前選擇范圍。例如,它會先選中當(dāng)前變量,再選中當(dāng)前語句,然后選中整個方法,縮小選擇則相反。
快捷鍵:Alt + 上/下 (OS X)、Ctrl+W / Ctrl + Shift + W(Windows、Linux)
5.5列選擇/塊選擇(Column Selection)
描述:正常選擇時,當(dāng)你向下選擇時,會直接將當(dāng)前行到行尾都選中,而塊選擇模式下,則是根據(jù)鼠標(biāo)選中的矩形區(qū)域來選擇。
調(diào)用:按住Alt,然后拖動鼠標(biāo)選擇。
開啟/關(guān)閉塊選擇:Menu → Edit → Column Selection Mode
快捷鍵:切換塊選擇模式:Cmd + Shift + 8(OS X)、Shift + Alt + Insert(Windows/Linux);
5.6語句補(bǔ)全(Complete Statement)
描述:這個方法將會生成缺失的代碼來補(bǔ)全語句,常用的使用場景如下:
在行末添加一個分號,即使光標(biāo)不在行末;
為if、while、for 語句生成圓括號和大括號;
方法聲明后,添加大括號;
調(diào)用:Menu → Edit → Compelete Current Statement
快捷鍵:Cmd + Shift + Enter(OS X)、Ctrl + Shift + Enter(Windows/Linux);
更多:如果一個語句已經(jīng)補(bǔ)全,當(dāng)你執(zhí)行該操作時,則會直接跳到下一行,即使光標(biāo)不在當(dāng)前行的行末。
5.7提取方法(Extract Method)
描述:提取一段代碼塊,生成一個新的方法。當(dāng)你發(fā)現(xiàn)某個方法里面過于復(fù)雜,需要將某一段代碼提取成單獨(dú)的方法時,該技巧是很有用的。
調(diào)用:Menu → Refactor → Extract → Method
快捷鍵:Cmd + Alt + M(OS X)、Ctrl + Alt + M(Windows/Linux);
更多:在提取代碼的對話框,你可以更改方法的修飾符和參數(shù)的變量名。
5.8提取變量(Extract Variable)
描述:這是一個提取變量的快捷操作。當(dāng)你在沒有寫變量聲明的直接寫下值的時候,這是一個很方便生成變量聲明的操作,同時還會給出一個建議的變量命名。
調(diào)用:Menu → Refactor → Extract → Variable
快捷鍵:Cmd + Alt + V(OS X)、Ctrl + Alt + V(Windows/Linux);
更多:當(dāng)你需要改變變量聲明的類型,例如使用 List 替代 ArrayList,可以按下Shift + Tab,就會顯示所有可用的變量類型。
5.9合并行和文本(Join Lines and Literals)
描述:這個操作比起在行末使勁按刪除鍵爽多了!該操作遵守格式化規(guī)則,同時:
合并兩行注釋,同時移除多余的//;
合并多行字符串,移除+和雙引號;
合并字段的聲明和初始化賦值;
快捷鍵:Ctrl + Shift + J;
5.10包裹代碼(Surround With)
描述:該操作可以用特定代碼結(jié)構(gòu)包裹住選中的代碼塊,通常是if語句,循環(huán),try/catch語句或者runnable語句。 如果你沒有選中任何東西,該操作會包裹當(dāng)前一整行。
快捷鍵:Cmd + Alt + T(OS X)、Ctrl + Alt + T(Windows/Linux)
5.11其他
Ctrl+N:快速查找類名、文件
Ctrl+B:直接跳轉(zhuǎn)到類、方法、成員變量定義的地方。與Ctrl+鼠標(biāo)左鍵效果一樣
.Ctrl+Alt+V:調(diào)用方法時傳入的參數(shù)是比較復(fù)雜的表達(dá)式時,可用此組合鍵重構(gòu)變量,以簡化代碼的復(fù)雜度。
Ctrl+Alt+V:提取局部變量
Ctrl+Alt+F:提取全局變量