1. 程式人生 > >完全新手的安卓視訊教程學習筆記(一)

完全新手的安卓視訊教程學習筆記(一)

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.

如果之前強制關閉程式,造成第二次打不開工程,把工作空間中的工程目錄下.setting目錄刪除後再試。

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)

             以此類推。。。。。。