完全新手的安卓視訊教程學習筆記(一)
1. 重啟abd
在DDMS中Devices下工具欄下拉箭頭中有重啟adb按鈕。
如果不行,在工作管理員中手動結束adb程序。
如果還不行,檢視是否有程式佔用5037埠。
2. 如何查詢計算機端口占用情況:
執行cmd,輸入netstat -ano。
外部地址即為埠號,可查到PID,再用 PID在工作管理員中找到對應程式。
如工作管理員中不顯示PID,在檢視下選擇列中勾選。
3. 建立新程式時,Compile With要與可支援的最高版本一致。
4. 如果只是開發一個jar包或庫函式專案,勾選Mark this project as a library。
5. assets目錄中可存放一些檔案,如資料庫和圖片等,這些檔案會被原封不動的打包到APK。
6. bin目錄就是編譯後的檔案。
7. libs目錄存放suppor的jar包,保障在高版本編寫的程式在低版本中也能執行。
8. layout目錄中可定義介面。
9. xmlns表示名稱空間。
10. values目錄中strings.xml可定義字串。再在介面中用android:text="@string/字串名"語句呼叫。
android:layout_centerHorizontal水平居中。
android:layout_centerVertical豎直居中。
11. Project中clean可以重新整理工程,如果編譯報錯,而人工確認工程無錯,可重新整理後再編譯。
12.
13. 如果遇到工程無法部署,可右鍵工程名下的Android tools中的Fix project properties試下。
14. AndroidManifest.xml是該安卓工程的清單檔案。
15. 所有安卓程式都有互不相同的包名。程式已包名為表示。同一手機中不可能有包名相同的兩個程式。
16. intent-filter中為圖示顯示。沒有intent-filter就沒有程式的圖示。
17. 大型程式部署用Eclipse很慢,最好用一些部署工具,如ant。
18. DDMS中FILE EXPLORER的DATA目錄下的system目錄中的package.list和package.xml相當於電腦中的登錄檔。
19. adb中install後跟APK名,但uninstall後面要跟程式包名。
20. adb後跟 -s 加裝置的device編號再加指令,可選擇在哪個裝置上執行adb指令。
21. adb pull 手機檔名 你取的電腦檔名,從手機取檔案;
adb push 電腦檔名 /手機路徑/你取的手機檔名,把電腦的檔案放入手機的指定位置。
22. 如果adb時常出問題,檢查電腦中是否開著手機助手類軟體。
23. adb shell 進入手機終端系統,可為手機執行Lunix的命令列指令。
24. Androi安裝路徑不能有中文。
25. 有時電腦非正常關機後,下次在使用原來的模擬器時無法儲存資料。這種情況,需把x:\使用者\Admnistrator\.android\avd\xxx.avd目錄下的.lock資料夾手動刪除後,再試。
26. 如果模擬器上出現無訊號,一般是你的電腦沒有連線網際網路。或者直接連線網際網路,或者給無法聯網的電腦手動備置IP地址。
27. ctrl+F11 模擬器橫豎屏切換。
28. <requestFocus /> 點選該文字框自動彈出手機中的輸入號碼軟鍵盤。
29. 當要輸入文字以命名控制元件時,最好在values目錄下的strings.xml中新增一個string字串,以方便日後國際化工作。android程式也會有警告,發現警告後,按ctrl+1後在下拉框選Extract string,即可抽取該文字做成string字串。
30. ctrl+滑鼠左鍵 可查到類的原始碼。如果沒有,還能新增原始碼:點選Attach Source 再點ExternalFolder選sdk目錄下sources目錄中的原始碼,即可新增。
Button類在Android-15。
TextUtils在Android-15。
31. Intent類 一種動作類。
Android的工程師預置了一系列動作可以用intent.setAction(intent.預置的動作名)來呼叫。
用intent.setData(Uri.parse(資料名))來指定動作的資料。
32. Uri 統一資源標示符,Url的父類。
33. 部署時出現程式停止執行,可在LogCat中查詢原因。找Caused by這一列。
34. 在AndroidManifest.xml中的Permissions中可新增控制權限
35. Edit Text類中.getText()方法後跟. toString()轉換成String型別,後跟.trim()忽略Text中的回車或空格等。
36. Toast.makeText(context, text, duration).show()
context可指定Activity。
text為提示框的文字。
duration為顯示時長可輸入Toast. LENGTH_LONG或Toast.LENGTH_SHORT。LONG為2秒鐘,SHORT為1秒鐘。
.show()為顯示提示框。
37. 點選事件寫法:
(1)建立一個內部類定義點選事件。
按鈕名.setOnClickListener(new內部類());
private class 內部類 implements OnClickListener{
@Override
public void onClick(View v) {點選事件的具體響應方法}
}
(2)建立一個介面的匿名內部類定義點選事件。
按鈕名.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {點選事件的具體響應方法}
});
(3)讓Activity實現點選事件的介面。
public class Activity名extends Activity implements OnClickListener{}
按鈕名.setOnClickListener(this);
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.按鈕名:
點選事件的具體響應方法;
break;
}
這種寫法最常見,因為一個介面可能有許多點選按鈕,該寫法可以把所有按鈕點選事件都寫在一個public void onClick(View v)方法內用switch判斷按鈕id來呼叫正確的迴應方法,不用每個按鈕都寫一個public void onClick(View v)。
(4)在佈局檔案layout中繫結一個點選的方法。
Layout中:<Button
android:onClick="dailButtonClicked"/>
Activity中:
public void dailButtonClicked(View v){
點選事件的具體響應方法;
}
38. 將經常呼叫的程式段抽出出來編成獨立的方法,以便之後呼叫。右鍵程式段,Refactor中選Extract Method。
39.Layout中的TextView有
android:textAppearance="?android:attr/textAppearanceLarge"是指文字字型是系統指定大小。如果要改,刪除該行,寫android:textSize="大小畫素"即可。
40. android:textColor 指定文字顏色,形式”#000000”,rgb格式。注意如果用電腦中的取色器中顯示的編碼是bgr格式。
另形式”#000000”如果#後再加2位,則指定為透明程度,ff為不透明,00為全透明。
41. 如果要替換多處程式碼,選取該段程式碼,Ctrl+F替換。
42. android:singleLine="ture" 文字框只有1行。
android: Lines="數字"文字框有數行。
43. 如果程式部署失敗,在Console顯示timeout。
(1)可能是電腦比較慢,adb未能在指定時間內把程式上傳到模擬器或手機上。可以改下指定時間,在Window中Preferences目錄下Android中DDMS中ADB connection time out中修改。預設5000毫秒。
(2)最常見的是模擬器掛掉了,重啟模擬器。
44. 一般Java中命名採用my+類名+例項名。例項名首字母大寫。
45. 如果一個類的例項不能new,說明該類沒有構造方法,要用類名.getDefault()。
46. 在指定UI控制元件大小時,單位用“dp” 不要用“px”。“dp”可保證不同螢幕大小的手機,UI的顯示效果一致。
47. 在表格UI佈局中,如果要使一行的不同列大小比例不一,可寫成 android:layout_weight="1"
android:layout_width="0dp"
其中layout_weight="1"中的1表示比例佔1份,如果是2就表示2倍大於1,依此類推。
48. android:gravity="center"表示控制元件的文字居中。
49. Framelayout佈局中的控制元件可隱藏。
50. 安卓系統中有專門用於冒煙測試的工具:安卓猴子。用adb shell進入終端系統,在輸入monkey進入該工具。
冒煙測試:指反覆大次數的執行程式,看程式是否有問題。
51. SuperClass 父類。
52. 寫測試方法時,所有的方法都要加throws Exception,來把異常拋給測試框架。
53. 斷言方法assertEquals(正確的值,運算的值),判斷測試結果是否正確。
54. 在Outline中右鍵測試的方法選run As下Android Junit Test執行測試方法。
55. 要執行測試方法,先要在AndroidManifest.xml中加入:
(1)指令集
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:label=" "
android:targetPackage=" "
/>
Name 指令集名稱,固定不變。
Label 指令集別名,自己起或不起都行。
TargetPackage 測試的目標程式。
(2)函式庫
<uses-libraryandroid:name="android.test.runner"/>要放在<application>節點下。
(新建一個Project下Android Test Project工程,其中的AndroidManifest.xml中自動就有上述配置,直接複製黏貼。)
56. xml檔案中註釋快捷鍵為ctrl+shift+/。
57. Log輸出日誌資訊是分等級的:
Verbose:提醒 黑色 Log.v(tag,輸出的資訊)
Debug: 除錯 藍色 Log.d(tag,輸出的資訊)
Info: 資訊 綠色 Log.i(tag,輸出的資訊)
Warn: 警告 橙色 Log.w(tag,輸出的資訊)
Error: 錯誤 紅色 Log.e(tag,輸出的資訊)
tag建議寫為類名。
58. Logcat中右邊SavedFilters為日誌過濾器,點綠色的加號,可建立帶條件的過濾器。
59. 也可用System.out.println(輸出的資訊)來輸出日誌資訊,在Logcat中為Info級綠色資訊,tag為System.out。
還可用System.err.println(輸出的資訊)來輸出日誌資訊,在Logcat中為Warn級橙色資訊,tag為System.err。
此方法不建議使用,會造成無法獲知是哪個類中的輸出資訊。
60. 控制元件中內容的賦值語句必須寫在setContentView()方法之後,即控制元件佈局被建立後其中的控制元件方能被賦值。
61. TextUtils.isEmpty(字串)判斷字串是否為空。
62. 字串1.equals(字串2)判斷2個字串是否相等。
63. 在手機中儲存的檔案在data/data/包名目錄下。
64. Bool方法可以自己寫是否有異常,異常就顯示false。Void方法只能報異常丟擲。
65. 選中語句塊右鍵選Surround with目錄下有各種控制方法模組。
66.沒有呼叫任何類的成員變數的方法,可以寫成static靜態方法。可提高虛擬機器效率。
67. Context類提供一些方便的API,可得到應用程式的環境。(環境包括:包名、安裝路徑、檔案路徑、資源路徑、資產路徑等。)
Context.getFilesDir()返回目錄data/data/包名/files/ 永久資料夾。
Context.getCacheDir()返回目錄data/data/包名/Cache/ 快取資料夾。不能放置體積大於記憶體的檔案。
Context.openFileOutput(string,int mode) 開啟指定檔案寫入。
mode:
Context.openFileIntput(string) 開啟指定檔案讀取。
68.在DDMS中的FileExplorer的Permissions可檢視檔案的許可權狀態:
第0位 -表示檔案,d表示目錄
第1-9位 r表示可讀,w表示可寫,x表示可執行, -表示不可
第1-3位 表示當前程式
第4-6位 表示當前程式所在的使用者組:一般情況下安卓系統的每一個程式對應一個獨立的組(可用adb shell進入cd /data/data下用ls -l命令檢視,第一列為使用者名稱、第二列為使用者組名、第三列為程式名)
第7-9位 表示其它程式
69. 用adb shell進入cd /data/data/程式名/files用chmod改變檔案訪問許可權:
例: - --- --- --- 為000(二進位制0 000 000 000)
- rw- --- --- 為600(二進位制0 110 000 000)
- rw- rwx --- 為670(二進位制0 110 111 000)
以此類推。。。。。。