壹、Android開發環境搭建前準備:
1、Android開發利器掌握
JavaSDK(software development kit)
AndroidSDK
Eclipse及ADT插件(android development tools)
二、開發環境安裝(常規安裝步驟):了解
1、安裝JavaSDK,配置環境變量
2、安裝Eclipse
3、安裝Android SDK,完成配置
4、安裝ADT插件,下載安裝包(/android/eclipse/)
5、創建AVD
三、快速安裝:掌握
1、拷貝其他機器中android sdk和eclipse
2、修改Eclipse中配置信息
3、創建AVD(android virtual device)
Eclipse的首選項設置:
1、字符集設置:
General——Editors——TextEditors——Spelling——utf-8
General——Workspace——Other——UTF-8
Content Assist —— Auto Activation triggers for Java
save actions
四、Android發展歷史了解
Android公司於2003年在美國加州成立,創始人Andy Rubin , Rich Miner等;
2005年由Google收購註資,並組建開放手機聯盟;
2007年11月12日,Google發布Android1.0操作系統;
2008年9月,首款搭載Android 1.0 OS的Android手機誕生T-Mobile G1。不支持觸摸輸入,因此G1配置實體鍵盤。(HTC宏達電代加工);
2009年4月30日發布Android 1.5 Cupcake。這是Android發展歷史上第壹個重要的裏程碑。此後,Android系統版本都是以甜點進行命名,並以字母排序;
2009年9月15日發布Android 1.6 Donut。Android1.6首次支持了CDMA網絡;
2009年11月Android 2.0 Eclair降臨了。它是Android發展歷史上第二個重要的裏程碑;
2010年5月20日發布Android 2.2 Froyo。直到Android2.2發布時,谷歌似乎才開始認真考慮Android的企業級功能;
2010年12月7日發布Android 2.3 Gingerbread。該版本開始對NFC的支持(Near Field Communication);
2011年2月2日發布Android 3.0 Honeycomb。“蜂巢”正式進軍平板電腦。
2011年10月19日在香港發布Android4.0 Sandwich。4.0是Android發展歷史上又壹次重大的升級;
2012年6月28日發布Android 4.1/4.2 Jellybean。Android4.1是谷歌繼蜂巢之後,壹次全新的平板策略嘗試。
Android基本常識:掌握
1.5 Cupcake API 3
1.6 Donut API 4
2.0/2.0.1/2.1 Eclair API 7
2.2 Froyo (Frozen Yogurt) API 8
2.3.1/2.3.3 Gingerbread API 9/API 10
3.0/3.1/3.2 Honeycomb API 11/API 12/API 13
4.0/4.0.3 Icecream Sandwich API 14/API 15
4.1.2/4.2.2/4.3 JellyBean API 16/API 17/API 18
4.4 KitKat API 19
五、Android學習路線圖:
學習Android要具備的基礎知識
JavaSE基本知識:集合、IO操作、線程、網絡訪問、XML解析、JSON解析
WEB開發知識:HTML、jsp、servelet
服務器開發知識:jdbc數據庫操作(Mysql)
六、Android的系統架構
設備驅動程序層(Linux Kernel):該層主要包括:驅動、內存管理、進程管理、網絡協議等組件。
執行層c/c++函數庫層(Libraries)及Android Runtime:
Java不能直接訪問硬件,要訪問硬件,必須使用NDK。NDK是由c/c++語言編寫的庫(.so文件),該層是對應用程序框架層提供支持的層。
SSL:Secure Sockets Layer安全套接字層
libc:C運行時庫
WebKit:負責瀏覽器支持(Chrome和Safari都使用該庫來支持瀏覽器)
FreeType:負責字體支持
應用程序框架層(Application FrameWork):該層壹般都是開發人員直接調用的API。該層主要由Java語言編寫。
應用程序層(Applications):由運行在Dalvik虛擬機上的app組成。(Dalvik是Google公司為Android專門設計的Java虛擬機,運行Java程序的速度比JVM更快,以此來克服手持設備在內存、處理器速度和功率等方面上的限制)。該層由Java語言編寫。
Dalvik是冰島壹個小鎮的名字。Dalvik VM獲取生成的java類文件,將它們組合為壹個或者多個、Dalvik可執行文件(.dex)。Dalvik VM的目標是找到所有可能的方式來優化JVM性能、內存及電池壽命。
采用Dalvik VM的壹個結果是,Android中最終的可執行程序代碼不是java字節碼,而是.dex文件。這意味著無法直接執行java字節碼,必須得到java的類文件,然後將它們轉換為.dex文件。
七、如何學習Android?
PPT註明當天教學重點和教學目標,必須要達到教學目標;
熟練模仿出當天課堂演示代碼的內容;
完成講師布置的作業;
手寫筆記,整理當天學習過程中核心代碼
有道詞典
八、Andorid要掌握的核心內容:
Android開發環境配置
Android界面編程(常用布局、基本組件)
Android高級組件編程(Dialog設計、ListView設計及分頁、Toast、Notification、Menu、WebView)
事件處理
Activity及Intent
Android應用資源的訪問
Android網絡應用開發及異步任務AsyncTask
Android數據存儲(內部存儲及SDcard存儲)和IO
使用ContentProvider實現數據***享
Service編程
Broadcast編程
圖像圖像處理
多媒體應用開發
傳感器應用開發
GPS應用開發
性能優化、apk安裝、平板技術開發
九、Android-sdk目錄結構介紹:
tools
platforms
platform-tools
docs
sources
十、開發Android的Eclipse視圖設置
DDMS
LogCat
其它首選項設置
十壹、HelloWorld及Android項目目錄結構介紹
src(開發人員源碼放置目錄)
gen(自動生成R.java,所有的資源文件都會在R.java文件中以final static 內部類的形式被註冊。所以可以通過R..id,R.layout等形式來訪問資源。)
assets(資產目錄。在這個目錄中放置的資源文件,不會在R.java文件中被註冊,也就是不會生成資源id。壹般程序中的音頻或視頻文件可以放置在這個目錄下。這個目錄支持任意深度的子目錄,而res資源目錄則不可以。)
bin(編譯後的class等文件在此目錄。系自動生成)
libs(項目自動生成)
res(資源文件。是Android編程中最重要的目錄。所有的資源都定義在這個目錄下。)
drawable(圖片放置的目錄)備註:android中不允許圖片資源的文件名中出現大寫字母,並且不能以數字開頭
layout(布局文件放置的目錄)
menu(菜單文件放置的目錄)
values(字符串、尺寸等文件放置的目錄)
AndroidManifest.xml (Android清單文件——是Android開發中非常重要的文件。
該文件中定義了本App的版本號;
適用的手機操作系統最大及最小的兼容版本號;
整個項目中每寫壹個組件(Activity、Service、Broadcast),都需要在該清單文件中註冊;
運行本程序的權限等等。
備註:res和assests目錄的不同:
是否在R.java文件中被註冊;
res所放的文件類型是規定好的;而assests目錄下放置的文件類型不限制;
訪問方法不同。res中文件使用R.內部靜態類.id來訪問;而assest中的文件通過IO流來訪問。
十二、需要掌握的單詞縮寫:
專業英文縮寫及詞匯:
API,JDK,SDK,Dalvik,ADT,AVD,Emulator,DDMS,ADB,APK
drawable,activity,intent,manifest,permission
十三、備註:
1、如何通過F3訪問到源代碼?
點擊需要訪問的類或者方法,顯示界面如下圖:
點擊“Attach source”,進入下壹個界面,選擇"External location" , 選擇“External Folder”,找到android_sdk下面的sources目錄下的某個子目錄即可。
十四、Android程序初體驗:
在xml布局文件中給壹個文本控件的id賦值;
在MainActivity的onCreate方法中,加載該文本控件;
給該文本控件賦值。
核心代碼如下:
private TextView text_main_info;
text_main_info = (TextView)findViewById(R.id.text_main_info);
text_main_info.setText("指定的內容");
備註:Android UI:
Android使用的UI框架本質上更先進,更具有異步特征。屬於第四代UI框架。UI是聲明性的,具有獨立的樣式和主題。
基於c的傳統Microsoft Windows API是第壹代UI框架;
基於c++的MFC(Microsoft Foundation Classes , Microsoft基礎類)是第二代UI框架;
基於java 的Swing是第三代;
Android UI,javaFX , Microsoft Silverlight ,Mozilla XUL都是第四代UI框架。
十五、擴展知識:常用adb shell命令 了解
1. 顯示系統中全部Android平臺:
android list targets
2. 顯示系統中全部AVD(模擬器):
android list avd
3. 創建AVD(模擬器):
android create avd --name 名稱 --target 平臺編號
4. 啟動模擬器:
emulator -avd 名稱 -sdcard ~/名稱.img (-skin 1280x800)
5. 刪除AVD(模擬器):
android delete avd --name 名稱
6. 創建SDCard:
mksdcard 1024M ~/名稱.img
7. AVD(模擬器)所在位置:
Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 啟動DDMS:
ddms
9. 顯示當前運行的全部模擬器:
adb devices
10. 對某壹模擬器執行命令:
abd -s 模擬器編號 命令
11. 安裝應用程序:
adb install -r 應用程序.apk
12. 獲取模擬器中的文件:
adb pull <remote> <local>
13. 向模擬器中寫文件:
adb push <local> <remote>
14. 進入模擬器的shell模式:
adb shell
15. 啟動SDK文檔實例下載管理器:
android
16. 卸載apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
17. 查看adb命令幫助信息:
adb help
18. 在命令行中查看LOG信息:
adb logcat -s 標簽名
19. adb shell後面跟的命令主要來自:
源碼\system\core\toolbox目錄和源碼\frameworks\base\cmds目錄。
20. 刪除系統應用:
adb remount (重新掛載系統分區,使系統分區重新可寫)。
adb shell cd system/app rm *.apk
21. 獲取管理員權限:
adb root
22. 啟動Activity:
adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴展數據,等)。
23、發布端口:
妳可以設置任意的端口號,做為主機向模擬器或設備的請求端口。
如:adb forward tcp:5555 tcp:8000
24、復制文件:
妳可向壹個設備或從壹個設備中復制文件, 復制壹個文件或目錄到設備或模擬器上:
adb push <source> <destination></destination></source>
如:adb push test.txt /tmp/test.txt
從設備或模擬器上復制壹個文件或目錄:
adb pull <source> <destination></destination></source>
如:adb pull /addroid/lib/libwebcore.so
25、搜索模擬器/設備的實例:
取得當前運行的模擬器/設備的實例的列表及每個實例的狀態: adb devices
26、查看bug報告:
adb bugreport
27、記錄無線通訊日誌:
壹般來說,無線通訊的日誌非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設置記錄:
adb shell logcat -b radio
28、獲取設備的ID和序列號:
adb get-product
adb get-serialno
29、訪問數據庫SQLite3
adb shell sqlite3
#cd system/sd/data //進入系統內指定文件夾
#ls //列表顯示當前文件夾內容
#rm -r xxx //刪除名字為xxx的文件夾及其裏面的所有文件
#rm xxx //刪除文件xxx
#rmdir xxx //刪除xxx的文件夾
十六:備註:
(壹)、AVD中的ARM:
ARM:Advanced RISC Machine 高級的精簡指令集機器
RISC:Reduced Instruction Set Computer 精簡指令集計算機
ARM是壹種基於RISC的32位微處理器架構,設計簡單,通過高度集中精簡的指令集來提高速度。模擬器就是在基於此架構的處理器上運行Android app。
ARM被廣泛應用於手持設備和其它嵌入式電子設備。低功耗是它最大的特點,移動市場廣泛使用基於此架構的處理器。
(二)、ping
(三)、android:configChanges屬性
對android:configChanges屬性,壹般認為有以下幾點:
1、不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執行壹次,切豎屏時會執行兩次
2、設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命周期,切橫、豎屏時只會執行壹次
3、設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調用各個生命周期,只會執行onConfigurationChanged方法
但是,自從Android 3.2(API 13),在設置Activity的android:configChanges="orientation|keyboardHidden"後,還是壹樣 會重新調用各個生命周期的。因為screen size也開始跟著設備的橫豎切換而改變。所以,在AndroidManifest.xml裏設置的MiniSdkVersion和 TargetSdkVersion屬性大於等於13的情況下,如果妳想阻止程序在運行時重新加載Activity,除了設置"orientation", 妳還必須設置"ScreenSize"。
解決方法:
AndroidManifest.xml中設置android:configChanges="orientation|screenSize“