編輯:關於Android編程
Android 上千實例源碼分析以及開源分析
要下載的直接翻到最後吧,項目實例有點多。
首先 介紹幾本書籍(下載包中)吧。
01_Android系統概述
02_Android系統的開發綜述
03_Android的Linux內核與驅動程序
04_Android的底層庫和程序
05_Android的JAVA虛擬機和JAVA環境
06_Android的GUI系統
07_Android的Audio系統
08_Android的Video 輸入輸出系統
09_Android的多媒體系統
10_Android的電話部分
11_Android的連接部分
12_Android的傳感器系統
13_Android應用開發揭秘(含代碼)
14_Android 電話與短信應用
15_Android斗地主[牌桌實現源碼]
16_Android核心分析
17_Android開發權威指南
18_Android開發指南中文版-應用程序框架
19_Android驅動開發入門及手機案例開發分析教程
20_Android手機開發應用案例分析之手機版開心網功能實現
21_Android硬件驅動開發關鍵技術和HAL移植要領
22_Android中文翻譯組——Android中文API合集(4)
23_Android Google.Android開發入門與實戰
24_Android 精通Android游戲開發
25_Android 3G應用開發之Android
26_Android 15個Android很有用的代碼片段
27_Android Android 圖像處理篇
28_Android Android_CTS測試研究
29_Android Android_GoogleMaps基礎開發教程
30_Android Android_GPS架構分析
31_Android android_JNI編程_一些技巧
32_Android android_jni操作指南
33_Android Android_NDK開發實例
34_Android Android_RIL層剖析(官方翻譯)
35_Android Android2.2+API+中文文檔系列
36_Android Android的Message機制(簡單小結)
37_Android Android的主題和風格介紹
38_Android Android開發環境搭建
39_Android Android內存洩露調試
40_Android Android日歷完整實現
41_Android Android攝像頭的應用
42_Android Android實現GPS定位
43_Android Android通過JNI調用驅動程序
44_Android Android網絡開發詳解
44_Android android寫的google map api 應用
46_Android android學習資料大全
47_Android Android音視頻的編解碼
48_Android Android應用框架原理與程序設計36技%28高煥堂著、簡體版%29
49_Android Android與JUnit深入淺出
50_Android Android真機開發教程
51_Android Android中文翻譯組——Android中文API合集(4)
52_Android bluetooth 藍牙
53_Android Google_Map_API谷歌地圖
54_Android Android的XML解析
55_Android 牛人Android提高篇
56_Android 手把手教你用Android開發新浪微博客戶端
57_Android Android 開發手冊
58_Android android+底層系統開發
59_Android Android2.3用戶手冊
毋庸置疑,看完上面的書籍,你不是高手,都不行。
我只是每天看一個小時,但是已經看完了大半部分,其它時間用於研究c++方面的東西了,沒辦法啊,我以前是搞c++的,現在換了公司,得學Java了,但是我對c++的愛好始終沒有減,有時間的話我把研究好了的東西開源出來大家一起交流下。
進入正題了,以下是大量的Android 的實例源碼分析(含 開源項目 ----都在下載包中),我一一詳解,簡單的或重復的技術就直接略過了,謝謝大家的指點。
1、360新版特性界面源代碼
實現了360新版特性界面的效果,主要涉及到Qt的一些事件處理與自定義控件。但源碼好像是c++。
2、aidl跨進程調用
服務端onBind暴露,然後客戶端bindService得到aidl對象
3、UI設計之 仿做蘑菇街UI設計 源碼
包含viewflipper用來顯示一個展示幻燈片banner 用到了OnGestureListener,OnTouchListener接口。
4、Android 程序的安裝、卸載和更新
通過Intent機制,調出系統安裝應用/卸載應用,直接調用安裝接口,
5、Android有未接來電後處理(判斷未接來電)
繼承PhoneStateListener後,當手機的狀態改變後將會觸發onCallStateChanged.手機的狀態分為CALL_STATE_RINGING(響鈴中),CALL_STATE_IDLE(空閒),CALL_STATE_OFFHOOK(忙音)。
6、Android與js交互
webview可以通過loadUrl()這個函數對html上的js進行調用同時傳參(js需要參數) 這樣就可以向html傳值了。繼承WebChromeClient類,分別使用Android的內置控件重寫了Js中對應的對話框,就是說對js中的對話框做處理了。
7、Android遠程登錄含有loading登錄效
通過使用Handler實現遠程登陸功能以及效果,使用Socket以及DataOutputStream、DataInputStream 實現登陸判斷,代碼含注冊界面、服務器響應。
8、android在wifi下手機與電腦的socket通信
手機作為服務端,電腦使用MFC編程作為客戶端,原理是,手機建立一個ServerSocket,並獲取自己的ip地址和端口port;然後電腦通過socket連接手機的ip:port。熟悉c++的人可以測試。
9、Android之Wifi學習教程
主要講解了四個類ScanResult,wifiConfiguration,WifiInfo,WifiManager的使用方法。
10、Android之用PopupWindow實現彈出菜單
使用了popupWindow窗體輕松實現了菜單很難實現的界面。多級菜單中包含了子菜單。
很有學習價值。
11、Android自動開關機實現
通過BroadcastReceiver 實現自定義消息。
12、Android中監聽電話狀態
Android在電話狀態改變是會發送action為android.intent.action.PHONE_STATE的廣播,而撥打電話時會發送action為android.intent.action.NEW_OUTGOING_CALL的廣播.
13、Android自動發送短信
sendTextMessage方法中第一個參數表示短信的目的電話號碼,第二個參數表示短信服務中心號碼,如果為null則使用默認的短信服務中心號碼。第三個參數表示短信內容,第四個參數表示發送短信結果內容,第五個參數表示發送短信到目的地址後的回復信息。
14、BrewClock倒計時
使用CountDownTimer這個記錄下載時間類實現計數。將後台線程的創建和Handler隊列封裝成為了一個方便的類調用。
15、FiveChess五子棋
通過一個自定義類繼承SurfaceView 實現界面,擴展了 Const,SurfaceHolder.Callback, Runnable等接口。
16、DialogShow
一個極其簡單的Dialog例子
17、dialog去除邊框代碼
看標題就應該知道,是一個對話框的外觀效果的例子。
18、BOOK看遍所有UI控件
一個例子實現了Android 裡面所有的UI控件
19、奇藝高清UI界面源代碼
一款很好看的界面,有首頁,分類,搜索,我的資料,更多。分別實現了貼圖輪換,界面阙套,以及多標簽,輪換動畫等特效。從這代碼中可以學習到界面布局,理解BaseAdapter適配器的作用。主要是UI設計,具體的看代碼喲。
20、hotel賓館系統
一款有java實現的賓館系統,學習Java的可以看下,學習Android的童靴飄過。
21、OssSystem(OA系統圖書管理簡單版)
簡單的實現了圖書管理的系統,主要還是UI設計,其中封裝了一個類與服務器交流。
22、QQ_UI之分類菜單DEMO
ListView內嵌GridView的實現。
23、從android中調用web service的源碼
詳細見代碼(簡單)
24、從網絡上獲取圖片
主要通過InputStream,FileOutputStream,HttpURLConnection實現。
25、動畫效果 translate、scale、alpha、rotate 切換Activity動畫控件位置調整
用四個4個TextView 實現了不同的動畫效果
26、抖動窗口
通過Animation類 實現 編輯框的抖動
27、QQ的登錄界面 源代碼
主要是UI設計,在布局文件中實現。
28、tablelogin(登陸界面)
主要是UI設計,含登陸,注冊等界面。
29、多點縮放字體
通過setTouchListener監聽實現多點消息,然後效果實現。
30、ImageView 圖片循環跑馬燈的效果
通過Animation 實現ImageView 的動畫效果。
31、ViewPager-實現左右兩個屏幕的切換
實現了ViewPager-實現左右兩個屏幕的切換 動畫效果(沒有引用Animation)。
32、LoginXml
簡單的 登陸界面設計。
33、miniTwitter登錄界面
簡單的 登陸界面設計。
34、VIEW雙緩沖與SurfaceView比較
如題。
35、畢業設計優秀論文
內容包括移動辦公畢業論文,基於Android的移動公交查詢系統設計與實現,基於Android平台的3G氣象軟件,基於Android平台的星座查詢軟件設計,基於android手機平台的吃豆人游戲設計與開發。
36、超爽的android抽屜效果
寫了一個繼承LinearLayout的類實現抽屜效果。可以從本例中學習到一些自定義控件。
37、Android程序如何升級
詳細見文檔。
38、OPENG開發的示例代碼
C版 詳細見代碼。
39、MineSweeper
Java實現的掃雷游戲(經典)。詳細見代碼。
40、TankWar坦克大戰
有Java實現的坦克大戰。詳細見代碼。
41、多級PopupWindow的小demo
很好的學習了PopupWindow。
42、個人消費記錄軟件
很好的學習了操作數據庫實現消費記錄。
43、仿優酷Android客戶端圖片左右滑動(自動滑動)
JDK中的多線程並發庫:ScheduledExecutorService的使用,用它實現的每兩秒滑動一次圖片,大家也可以用其它方式實現。Handler+Message機制更新UI。
44、高仿基於android2.2(Froyo)的Contacts
實現了對聯系人進行操作,詳細見代碼。
45、Android防止內存溢出淺析
對防止內存溢出總結了幾條。
46、換膚 程序
詳細見代碼,非常簡單。
47、仿iphone 氣泡短信 DEMO
ListAdapter 實現,詳細見代碼。
48、漸入漸出動畫 無閃爍 無黑底 Demo
如題,詳細見代碼。
49、高仿 WIN8系統 磁貼點擊下沉傾斜效果源碼
如題,詳細見代碼。
50、結合html5jscss測試程序附源碼
emoJavaScriptInterface類為js調用android服務器端提供接口 android
作為DemoJavaScriptInterface類的客戶端接口被js調用調用的具體方法在DemoJavaScriptInterface中定義: 例如該實例中的clickOnAndroid。詳細見代碼。
51、簡單的訂機票系統源碼
用調用webservice獲取xml,將獲得xml再解析出來
52、獲取Android系統程序信息
如題,詳細見代碼。
53、加載網頁進度條
標題欄顯示網頁標題並且滾動,並且用進度條顯示網頁的加載進度(重新自定義標題欄。詳細見代碼。
54、仿大眾點評源碼
只是簡單的實現了UI,沒有與服務器交流。學好Ui非常好的例子。
55、android獲取網絡數據到本地並查看
詳細見文檔。
56、仿QQ微信登錄界面
學習UI非常好的例子,只是UI登陸注冊等設計,詳細見代碼。
57、基於socket通訊的文件續傳
基於socket通訊的文件續傳,android基於socket通訊的文件續傳。詳細見代碼。
58、監控別人的行蹤
分別用GPS,google,baidu等定位行蹤。
59、仿UCWEB界面源碼
詳細見代碼。
60、仿新版人人的效果
非常好學習界面例子,詳細見代碼。
61、仿ireader書架
詳細見代碼。
62、Android模仿樂淘的應用程序分析源碼
詳細見代碼。
63、平台水波效果
詳細見代碼。
64、Android拍照上傳代碼樣例
如題,見代碼。
65、模仿微信導航頁效果源碼
前面已經出現過,詳細見代碼。
66、拖動 Button 顯示效果
一個button按鈕 可以被拖動到任意位置,主要是通過Ontouch消息實現。
67、嵌套TabHost示例
對學習TabHost非常好的例子
68、開發 API人臉檢測實例教程
通過兩個主要的API,Android提供了一個直接在位圖上進行臉部檢測的方法,這兩個API分別是 android.media.FaceDetector和android.media.FaceDetector.Face,已經包含在Android官方API中。
69、強行結束APP進程的方法
android.os.Process.killProcess(android.os.Process.myPid());
或System.exit(0);
70、精仿QQ設置界面
模仿了精仿QQ設置界面,學習界面的好例子。詳細見代碼。
71、圖片陰影效果和影子效果
自繪實現。詳細見代碼。
72、天天動聽 半透明Menu效果
自定義實現,詳細見代碼。
73、通過手勢實現的縮放處理
前面已講。
74、開發之 SD卡的使用
詳細見文檔。
75、模仿engadget菜單
使用TabHost實現的engadget菜單,詳細見代碼。
76、模仿UC等軟件啟動畫面加載時閃爍點的樣式
前面有類似。詳細見代碼。
77、調用Android中的軟鍵盤
學習了InputMethodManager和EditView類。詳細見代碼。
78、網絡通信的六種方式示例代碼
針對TCP/IP的Socket、ServerSocket
針對UDP的DatagramSocket、DatagramPackage
針對直接URL的HttpURLConnection
Google集成了Apache HTTP客戶端,可使用HTTP進行網絡編程
使用Web Service。Android可以通過開源包如jackson去支持Xmlrpc和Jsonrpc,另外也可以用Ksoap2去實現Webservice
直接使用WebView視圖組件顯示網頁
79、客戶端連接服務器並交互實例
如題,詳細見代碼。
80、商情商靈商測試系統源代碼
主要使用了Sqlite數據庫和listview.gridview控件的配合使用及其它控件
81、口袋微博 服務器 客戶端代碼
封裝了一個Socket的類與服務的交互信息,自定了協議規則實現了客戶端的對相冊,日子等數據庫的操作,功能有照相以及上傳照片,登陸判斷以及日子管理/注冊等等,是學習的好例子。詳細見代碼。
82、懸浮Activity並可拖動(訪懸浮歌詞)
學習WindowManager、.LayoutParams類了。
83、一個登陸和注冊界面
詳細見代碼。
84、用戶注冊,登錄的簡單實現
85、一個簡單登錄的DEMO
86、一個簡單注冊界面
前面已經涉及。
87、原來PATH的菜單效果如此簡單。布局+TranslateAnimation搞定
值得一提的是 interpolator的使用,PATH中使用了OvershootInterpolator以及AnticipateInterpolator。interpolator 被用來修飾動畫效果,定義動畫的變化率,可以使存在的動畫效果可以accelerated(加速),decelerated(減速),repeated(重復),bounced(彈跳)等。
88、五種不同的Toast效果
很好的學習了Toast類。詳細見代碼。開發可借鑒。
89、中文天氣預報程序
Google天氣預報的AIP。例如:http://www.google.com/ig/api?&weather=城市名(中文全拼),我發現在模擬器上面返回的結果和在pc上返回的結果不太一樣,pc上有中文的,android模擬器上沒有的。詳細見代碼。
90、一個短信應用源碼
詳細見代碼。
91、基於股票的一個Android應用
詳細見代碼。
92、演化理解 Android 異步加載圖片
Handler+Runnable模式
Handler+Thread+Message模式
Handler+ExecutorService(線程池)+MessageQueue模式
Handler+ExecutorService(線程池)+MessageQueue+緩存模式
詳細見代碼。
93、在Android遠程上傳以及下載圖片---XFire框架
處理類集中在MyWebServiceHelper,它實現了遠程獲取和上傳的細節功能。
裡面有個FileOperate.java類,這個類負責對文件操作。
詳細見代碼。
94、指南針定位源碼
開發一個檢測方向的傳感器,程序檢測到手機頂部繞z轉過的多少度,讓指南針圖片反轉過多少度
95、語音識別,根據語音,執行對應操作
詳細見文檔,只是一種思路。
96、引用第三方庫的方法
詳細見代碼。
97、一個支持暫停下載斷點續傳的源碼
List> listTask用來存放每一個正在進行的下載任務以及管理任務
重寫了AsyncTask類用於執行下載
98、植物大戰僵屍(簡單版)
詳細見代碼喲。
99、一款查詢軟件(身份證號,號碼歸屬等)源代碼
此實例非常好,非常使用,在開發中可以借鑒啊。詳細見代碼。
100、新浪、騰訊、網易、搜狐微博OAuth認證整合Android版
很好的學習OAuth認證,掌握了帳號安全可靠。詳細見代碼。我們公司自己定義了一種規則,原理都是參考他們的。
101、微博客戶端源代碼
102、weibo4andriod
原理都差不多,詳細搜索百度。
103、Android游戲源碼——忍者快跑
詳細見代碼喲。
104、使用Vitamio打造自己的Android萬能播放器——在線播放
雖然Android已經內置了VideoView組件和MediaPlayer類來支持開發視頻播放器,但支持格式、性能等各方面都十分有限,這裡與大家一起利用開源項目Vitamio來打造屬於自己的
Android萬能播放器!自己百度搜索吧。
105、音樂播放器源碼(含歌詞顯示)
106、SeeJoPlayer(播放器 簡單)
107、高仿多米音樂播放器
108、開發源碼分享之在線音樂播放器完整項目
109、android 懸浮窗 監視內存
實現懸浮顯示,內存使用狀況,非常適合學習ActivityManager類以及理解Server使用。
110、Android Home 自定義首頁界面
該實例實現了Android默認界面的更換,換上自定義界面,舉一反三,可實現撥打或接受電話界面的自定義,感興趣的筒靴可以好好研究下。
111、android電話、短信黑白名單攔截、電話錄音
攔截軟件,攔截電話,短信
如題,動態注冊廣播,電話來電去電狀態攔截以及顯示、短信彩信消息以及顯示、黑名單數據庫實現判斷等等。
112、手機號碼歸屬地
地區區號記錄。
113、android項目實例 商業項目源代碼
一套完整簡單的商業的項目源碼,包含登陸/注冊/設置/浏覽/相機/購物等,效果不錯,適合初學者。
114、PopWindow
實例彈出對話框。
115、TestListView02
測試列表視圖。
116、百度手機地圖 實例集合
117、百度地圖API 之 定位周邊搜索POI
118、北京公交線路查詢(離線)
119、百度地圖 搜索Search
如題。
120、android源碼下載工具
121、Android系統源碼獲取及編譯
122、Android系統源碼下載工具
123、Preference_Demo
測試PreferenceActivity ListPreference的一個實例
124、android寫的google map api 應用
如題。
125、OA精靈2011_Android版
如題。
126、Android模仿樂淘的應用程序分析源碼
如題,非常好的一個實例。
127、仿ireader書架
如題。
128、基於股票的一個Android應用(內含源碼)
如題。
129、游戲場景特效源碼
如題,動畫效果。
130、飛行射擊類游戲源碼
如題。
131、瘋狂Android講義源碼
如題。
132、android源代碼分析
如題。
133、Android無線點餐系統
含服務器,客戶端程序源碼
134、多種控件多種實現方式Demo
控件的多種實現方式。
135、內置GPS與百度GPS對比 Demo
總結:
1.在獲取當前位置時,原版的GPS定位要比百度封裝的快一些,但差距也並不大。
2.面對多種不同機型或閹割版系統時,原版的GPS就需要做出更周全的封裝(demo中是簡單封裝),而百度版的應該是已經全部封裝好的了。
3.系統中有提供谷歌地圖服務類,可以把坐標值直接轉換成物理地址,但該類只適用於原版GPS方式獲取到的坐標,猜測可能是由於中國地圖存在地址偏移,原版GPS獲取到的是真實坐標,而谷歌地圖服務類中已經有偏移計算了。百度版獲取到的坐標應該是偏移後的坐標值,不能使用內置的谷歌地圖服務類轉換,因此采用了百度自己提供的搜索類進行轉換;而百度搜索類主要用戶商戶搜索等,並非是提供坐標轉換,直接轉換坐標的方式目前百度還沒有推出,當位置每次變動的時候就搜索一次坐標位置,這會產生一定的流量,相比會更浪費一些。搜索類不能在使用地址時去搜索,因為他不是立即返回的。
4.在精准度上(目前是在室內測試的,均為AGPS),百度更加精准,不知是不是因為百度是國產的。
136、Android 電子雜志(帶翻頁效果)源碼
一個漂亮的android翻頁效果電子雜志在翻動書本的時候,頁角會根據手自動移動,在手松開頁角的時候,會判斷是否成功翻頁。成功,頁角會自動的翻動到目標位置;失敗,頁角會自動的回落到起始位置。請大家使用android2.1或2.0的系統包,以及將模擬器的大小設置為640*480,讓展示效果最好。
137、Android 實現自動接聽和掛斷電話功能
關鍵點:
PhoneUtils.java是手機功能類,從TelephonyManager中實例化ITelephony並返回
PhoneUtils.getITelephony(telMgr).silenceRinger();//靜鈴
PhoneUtils.getITelephony(telMgr).answerRingingCall();//自動接聽
PhoneUtils.getITelephony(telMgr).endCall();//掛斷
PhoneUtils.getITelephony(telMgr).cancelMissedCallsNotification();//取消未接顯示
138、Android 網絡監視器源碼
一個不錯的網絡監視器源碼,這個程序有四個主要的模塊:
1.全局的網絡監視,2.本機的網絡信息,3.網絡數據日志記錄,4.網絡測試(比如:ping 測試)。
139、android 遮罩層效果
看到一本電子雜志上有遮罩層的效果,感覺很漂亮,以為很麻煩,搜索了很多關於android遮罩層的,也沒有得出一點思路,原來就是一個透明的效果,然後上面彈出的控件是透明或者半透明之類的,可以選擇顏色,還是#ARBG,其中A就是傳說中的透明色的值(可以根據需要設置透明的效果)。
140、Android代碼調用C++代碼和C++代碼調用Android代碼
如題。
141、android基於自定義適配器的ExpandableListView
如題。
142、android源碼一個柱狀圖的Demo
如題。
143、Android之GPS定位詳解
詳細的講解了LocationManager和LocationListener、Location、GpsStatus.Listener、GpsSatellite
的使用方法。
144、Gmail備份手機短信【源碼】
本程序使用GMail備份手機短信,在GMail中創建一個文件,用來備份短信
145、傳說中的3D播放器 源碼
傳說的中的3D播放器,說實話我是沒看出怎麼個3D法來!不過貌似功能挺多的啊,感興趣的自己看看吧!
146、獲取Gps信息的程序源碼
一個可以獲取手機GPS信息的Android程序源碼,它還把獲取到的信息寫到了sqlite數據庫中。
147、教你如何去除Android應用中的廣告
如題。
148、進度條對話框Demo
詳細的講解了ProgressDialog的使用方法。
149、Android 版本檢測與管理
通過Url檢測更新、下載並安裝更新、刪除臨時路徑。
150、Android 電量顯示Widgets插件實現
非常好的一個實例。
151、Android 精仿QQ登錄界面源碼
如題。
152、Android 瀑布流 Demo
UI設計源碼。
153、android源碼捏蒼蠅
一款簡單的游戲源碼。適合初學者。
154、http 演示Demo
詳細的演示了http的使用方法。
155、WIFI 掃描 Demo
如題。
156、帶手勢劃動功能的日歷源碼
如題。
157、瘋狂Android講義源碼
一套完整的教學源碼。
158、AccelerometerPlay
總結:
視圖動畫提供了只讓View對象具有動畫效果的能力,因此想要非View對象具有動畫效果,就得自己實現動畫效果的代碼。事實上,視圖動畫系統也受到了限制,它只會把很少的View對象的特征暴露給動畫效果,如例如,View對象的縮放和旋轉,但是沒有背景色,等等。
視圖動畫的另一個缺點是,它僅能夠在繪制View對象時被修改,並且不是實際的View對象本身。例如,如果要讓一個按鈕,以動畫的形式穿越屏幕,按鈕正確的繪制了,但是點擊按鈕的實際位置卻不會改變,因此必須自己來實現這種處理邏輯。
在屬性動畫系統中,這些現在被徹底刪除,並且能夠讓任何對象的任何屬性具有動畫效果(View對象和非View對象),並且能夠實際修改對象自身。屬性動畫在動畫執行方面也更加健壯。在高層次上,可以給想要動畫效果的屬性分配動畫執行器,如顏色、位置、尺寸以及能夠定義的動畫特性(如插值和多個動畫的同步等)。
但是,視圖動畫系統需要較少的創建時間和編寫較少的代碼。如果視圖動畫能夠滿足需求,或者既存的代碼已經做了想要完成的動畫效果,就不需要使用屬性動畫效果了。針對不同的情況來選擇使用這兩種不同的動畫系統。
159、ActionBarCompat
用戶界面設計指南的應用,自定義標題欄選項卡類。
160、AndroidBeamDemo
此應用程序是專為運行Android4.0的設備,測試NFC功能!
161、BluetoothChat
基於android平台的藍牙發送功能源碼,學習android下藍牙編程。
162、BasicGLSurfaceView
演示了gles2.0的使用,UI設計學習。
163、BackupRestore
數據存儲到雲端服務器,以*.xml文件將手機接入點設置備份至/SDCard/APNBackupRestore目錄,還原備份文件,一鍵刪除手機上現有的接入點設置,郵件發送接入點備份文件。
164、AppNavigation
165、ApiDemos
演示了所有控件以及系統api的使用方法。
166、BluetoothHDP
藍牙與外設的通信
167、ContactManager
聯系人管理的 實例
168、GestureBuilder
手勢識別
169、CrossCompatibility
170、CubeLiveWallpaper
171、HoneycombGallery
172、JetBoy
173、LunarLander
174、MultiResolution
175、NFCDemo
176、NotePad
177、RandomMusicPlayer
178、RenderScript
179、SampleSyncAdapter
180、SearchableDictionary
181、SipDemo
182、SkeletonApp
183、Snake
184、SoftKeyboard
185、SpellChecker
186、Spinner
187、SpinnerTest
188、TicTacToeLib
189、TicTacToeMain
190、ToyVpn
191、TtsEngine
192、USB
193、VoicemailProviderDemo
194、VoiceRecognitionService
195、WeatherListWidget
196、WidgetPreview
197、WiFiDirectDemo
Android自帶實例 源碼
詳細查看源碼,文檔就自己百度吧。不過像這些在線音樂的,他推薦一款開源的吧,很經典。
看下面開源的喲。
以下是開源項目(都在下載包中):
1、andbatdog電池監控 難度系數最小
Android BatteryDog 是 Android 平台上用來監控電池電量的服務軟件,它生成電池記錄文件:/sdcard/BatteryDog/battery.csv,該文件包含時間、電量信息、溫度和電壓以及一些簡單的圖形。
項目就四個源碼文件:
BatteryDog_Service
繼承了服務Service(後台運行和跨進程訪問)
創建了一個線程負責輸出信息到文件
注冊了廣播接收器ACTION_BATTERY_CHANGED
BatteryDog
繼承了Activity 布局battery_dog 文件
主要負責啟動/關閉服務Service 和分析數據然後相關控件顯示出來
BatteryGraph
繼承了Activity 動態布局
顯示相關畫面
Log 負責輸出顯示信息
2、Droid Wall 手機防火牆
Droid Wall - Android Firewall 是一個類似於 Linux 下的iptables 的 Android 手機防火牆軟件,允許你限制某些應用訪問數據網絡,包括 2G/3G 以及 Wi-Fi。
項目共六個文件:
Api 包含共享的編程接口。處理所有ip(可用)的“溝通”這個類別。 這是很重要的類。
BootBroadcast 廣播接收機,設置在系統啟動時的iptables規則。這是必要的,因為這些規則是不持久的。
HelpDialog對話框中顯示的“幫助”菜單選項被選中時。
MainActivity 主界面 功能實現部分
PassDialog對話框中顯示要求輸入密碼。
StatusWidget 構件實現的ON / OFF 部件狀態
3、jchat4android手機聊天程序 (內含開發文檔)
Android jChat 是一個 Android 手機上基於位置的聊天軟件,采用P2P通訊機制。
為了編譯jChat,你要使用Eclipse創建一個新的Android項目,然後添加外部JAR和移動的jChat目錄選擇到libs目錄JadeLeapAndroid.jar庫。jChat使用了的MapView訪問谷歌地圖數據。
本項目有25個目標文件。項目裡面有代碼注釋以及開發文檔。
4、zz-doctor中醫大夫助理信息系統
輔助中醫大夫儲備藥方、藥名藥理備查。讓大夫能騰出精力集中診斷分析, 而不必消耗精力去記憶瑣碎的細節。平時有空方便時自己錄入儲備或完善經驗方。 更有利於傳承。
系統架構設計:1. PDA: GUI(Android) +Embedded DB (SQLite) ;2. (可配置)定期提示大夫備份數據到附加儲存卡。
本項目有17個目標文件。
DbHelper 負責數據庫的管理 功能有 執行sql語句 以及 升級等
ZZ 程序全局類 繼承Application
MedicineDetail 醫藥詳情介紹
MedicineQuery 醫藥的查詢
RxRecipeDetail 接收方詳情
RxRecipeDetailEdit 接收方編輯詳情
WelcomeRxRecipeQuery 歡迎接收方查詢
IdentifiedString 標識結構類
IdentifiedAutoCompleteTextView 自動匹配標識的信息
IdentifiedStringAdapter 標識信息適配器
UnitAdapter 單位組適配器
ZzUtil 單位類
MedicineSQLBuilder 醫藥數據庫管理類
RecipeMedicineMapSQLBuilder 接收方醫藥信息對應的數據庫類
SQLBuilder 數據庫編輯器 根據參數選擇不同的編輯方式 含main方法
SubjectSQLBuilder 項目數據庫的編輯器
由上分析可以得出,該軟件實現了數據庫的操作,界面布局不復雜。
5、一款查詢軟件(身份證號,號碼歸屬等)源代碼 (個人覺得這是一款開源軟件)
此實例非常好,非常使用,在開發中可以借鑒啊。
本項目有24個目標文件。
BaseActivity 頭部bar的布局
BaseLayout 頭部bar的布局
DataListHolder 就兩個成員ImageView TextView 你說干嘛呢
ItemAdapter 繼承適配器
QueryAddress 繼承BaseActivity 實現地址查詢
QueryIDCard 繼承BaseActivity 實現身份證查詢
QueryPhone 繼承BaseActivity 實現手機號查詢
SmallToolsActivity繼承BaseActivity 實現主界面布局
Splash 繼承Activity 實現閃爍延時效果
UpdateApp 一個確定版本信息升級的類
ApiImpl Api接口 實現了地址查詢 身份證查詢 手機信息查詢 更新信息查詢 網絡請求的功能
AddressInfo 定義了一個地址信息結構類
AppUpdateInfo定義了一個更新信息結構類
IDCardInfo 定義了一個身份證結構類
NumberItem定義了一個帳號結構類
PhoneInfo 定義了一個手機信息結構類
AppInfoHelpr 定義了一個程序信息 得到版本信息,版本名
Constants 定義了一個公用靜態變量存放類
DeviceHelper 定義了一個設備信息類 主要功能有獲取尺寸 讀取手機號
HttpClientHelper 定義了一個服務請求類,實現與服務器的交流。
HttpException 繼承 Exception 實現了輸出異常信息
HttpPostParameter 實現了參數信息的設置
HttpResponse 消息的響應
InternetHelper 內部幫助 可以湖的網絡是否可用
由上分析可以得出,該軟件只是實現了與服務器請求信息,以及信息顯示。界面布局簡單。
6、Zirco-browser:超越海豚的開源浏覽器
Zirco是Android開源的替代浏覽器。
說明:如果已卸載系統自帶浏覽器,使用Zirco Browser的書簽功能可會會出現崩潰的情況。
基本的浏覽器功能(書簽,歷史,下載...)、無限的選項卡、交通方便的書簽、開幕式和閉幕式的簡易制表符、從傳統的Andr??oid浏覽器的書簽導入、可設置為默認浏覽器、AD -受體阻滯劑(重要提示:了解更多)。換句話說,zirco是一個Android的開源替代浏覽器,功能很強大,除常見的功能外,還支持自定義搜索引擎、自定義usergent、支持導入火狐的書簽、頁面內查找、主頁自定義、地址欄搜索、插件支持、無限制的選項卡浏覽,左右循環滑動切換;同時支持屏蔽廣告;功能可以說很多都是首創,我最喜歡的還是自定義搜索,終於也可以在手機上使用google自定義搜索了,應用自帶中文,不過設置中含有部分英文。
Zirco-browser:超越海豚的開源浏覽器分析
Base32
Base64
Base64Encoder
HexEncoder
編解碼操作類庫
BulkKeyCouplet 關鍵映射
Dbg Debug編譯操作信息
QueryParams 檢索參數信息 日期
QueryResult 這是模塊類
UserWeave 用戶類 定義了用戶信息以及用戶操作
WeaveAccountInfo 帳戶自定義信息類
WeaveBasicObject 基礎類 JSONObject 操作
WeaveConstants 定義常量
WeaveCryptoUtil 加密解密操作類
WeaveException 異常類
WeaveFactory 生產工廠
WeaveHeader 自定義頭信息類
WeaveResponse 自定義響應消息類
WeaveSSLSocketFactory 此套接字工廠將創建SSL套接字使用配置證書驗證(例如,允許自簽名)。
WeaveTransport 傳輸協議類
WeaveUtil
QuickAction 自定義資源以及標題類
QuickActionGrid 表格視圖操作
QuickActionWidget 顯示用戶界面的部件
Controller 控制器的實現
EventConstants 自定義事件的常數類
EventController 事件控制器的實現
IdownloadEventsListener 下載事件的監聽接口
DbAdapter 數據庫適配器的實現
UrlSuggestionItemComparator 網址比較
BookmarksCursorAdapter 書簽光標適配器。
DownloadListAdapter 下載UI列表適配器。
HistoryExpandableListAdapter 歷史顯示自定義適配器
UrlSuggestionCursorAdapter 提出建議的適配器。
WeaveBookmarksCursorAdapter 書簽光標適配器
BookmarkItem書簽自定義類
DownloadItem 下載項目自定義類
HistoryItem 歷史節點
UrlSuggestionItem 網址自定義類
WeaveBookmarkItem 書簽標識類
BookmarksProviderWrapper 歷史/書簽管理。
WeaveColumns 自定義常量信息類
WeaveContentProvider
WeaveContentProvider
ZircoBookmarksContentProvider
IsyncListener 同步監聽接口
WeaveSyncTask 同步任務
AboutActivity 關於界面
AdBlockerWhiteListActivity 廣告攔截器的白名單顯示視圖
BookmarksHistoryActivity 聯合書簽和歷史視圖
BookmarksListActivity 書簽列表視圖
ChangelogActivity更改日志對話框
DownloadsListActivity 下載列表視圖
EditBookmarkActivity 添加、編輯書簽視圖
HistoryListActivity 歷史列表視圖
ItoolbarsContainer 接口定義工具欄容器。
MainActivity 應用程序的主界面
MobileViewListActivity 廣告攔截白名單列表視圖
WeaveBookmarksListActivity 書簽列表視圖
BaseSpinnerCustomPreferenceActivity 自定義的下拉框
HomepagePreferenceActivity 主頁喜好選配視圖
PreferencesActivity 收藏視圖
SearchUrlPreferenceActivity搜索URL收藏視圖
UserAgentPreferenceActivity用戶代理收藏視圖
WeavePreferencesActivity 收藏視圖
WeaveServerPreferenceActivity 服務器收藏視圖
CustomWebView 擴展的WebView類
CustomWebViewClient 擴展的WebViewClient類
DownloadRunnable 下載線程
FaviconUpdaterRunnable 更新線程
HideToolbarsRunnable 隱藏工具欄線程
HistoryUpdater 歷史更新線程
XmlHistoryBookmarksExporter 一個xml解析出歷史書簽的線程
XmlHistoryBookmarksImporter 一個從xml導入歷史書簽的線程
AnimationManager 動畫效果管理類定義了多重動畫效果
ApplicationUtils 應用函數
Constants 定義常量
DateUtils 日期時間管理類
IOUtils 實用程序的I/O操作類
ProxyChangeReceiver自定義的代理改變廣播操作
ProxySettings 設置信息
UrlUtils 網站管理類
本項目有81個目標文件。代碼簡單易懂,適合初學者奔向中手,感興趣的童靴可以好好研究喲。
7、開源項目pedometer
Pedometer應用用於記錄你每天走路步數的。盡管記錄不一定精准,但是從這個項目中,可以學習幾個不同的技術:加速器交互、語音更新、後台運行服 務等。
本項目有16個目標文件。
CaloriesNotifier 繼承接口StepListener, SpeakingTimer.Listener
能量通知,實現步伐監聽,說話監聽
DistanceNotifier 繼承接口StepListener,SpeakingTimer.Listener
距離通知,計算並顯示走過的路程。
PaceNotifier 繼承接口StepListener,SpeakingTimer.Listener
步伐通知,計算和顯示速度(步/分鐘),處理輸入所需的步伐,並通知用戶,如果他/她走快或慢。
Pedometer 主界面
PedometerSettings 設置屬性自定義類
Settings 設置界面
SpeakingTimer 說話時間
反復監聽所有對象呼吸。定義由用戶設置的時間間隔。
SpeedNotifier 速度通知
計算和顯示速度(步/分鐘),處理輸入所需的步伐,並通知用戶,如果他/她走快或慢。用途計算速度的步伐和步長的產品。
StepBuzzer 步驟蜂鳴器
一步檢測時震動。通常情況下,這是不重視,用於調試目的。
StepDetector步驟探測器
檢測步驟,並通知所有聽眾
StepDisplayer 步驟顯示
計數步驟提供的步驟檢測,並通過當前的步數的活動。
StepListener 步驟監聽
StepService 步驟服務
BodyWeightPreference
StepLengthPreference
都是對EditMeasurementPreference 繼承 只允許浮點數
EditMeasurementPreference 繼承EditTextPreference
它可以處理公制/英制設置。
這款軟件的關鍵點是類StepService,喜歡的話可以看源碼好好研究。
8、AndroidPdfViewerPDF查看器
Android PDF Viewer 是Android平台下的PDF閱讀器。
本項目有100個目標文件。感興趣的童靴可以好好研究喲。
9、andricoFacebook客戶端
Facebook的創辦人是Mark Zuckerberg,他是哈佛大學的學生,之前畢業於Ardsley高中。最初,網站的注冊僅限於哈佛學院的學生。在隨後的兩個月內,注冊擴展至波士頓地區的其他高校(如麻省理工學院)以及斯坦福大學、紐約大學、西北大學和所有的長春籐名校。第二年,很多其他學校也被邀請加入進來。最終,在全球范圍內有一個大學後綴電子郵箱的人(如.edu, .ac.uk等)都可以注冊。之後,在Facebook中也可以建立起高中和公司的社會化網絡。而從2006年9月11日起,任何用戶輸入有效電子郵件地址和自己的年齡段,即可加入。用戶可以選擇加入一個或以上網絡,例如中學的、公司的、或地區的。
Facebook客戶端軟件分析
ByteArrayBody 操作字節流根據字節流獲得進程條的狀態
HttpChainingRunnable 服務連接線程
HttpClientService 客戶端服務線程
HttpMessageFactory 請求由HTTP客戶端服務生成HTTP可以執行的對象。
HttpResponseByHandlerDecorator 設置消息處理
HttpResponseRunnable 封裝HTTP請求處理線程
IhttpResponseRunnable抽象http響應接口
ContactInfo 自定義聯系人信息類
ContactList 自定義聯系人列表類
JsonParser 自定義Json解析類
MainActivity 主程序界面
Preferences 定義存儲數據類
SettingsActivity 設置界面
Synchronize 同步數據處理界面
UiHandler UI界面處理消息類
UserInfo 封裝用戶信息數據的容器
WebActivity 網頁界面
WebViewActivity 網頁視圖界面
Contact 封裝了自定義聯系人數據
DBContact 數據庫管理聯系人數據
DBHelper 數據庫的輔助類
AuthorizationActivity 口令認證界面
ExtendedPreferenceActivity 口令認證擴展界面
FB
FBBase
FBMethod 產生Md5值
FBMethodCallback 回調函數
FBMethodFactory 方法工廠
LoginActivity 登陸界面操作
本項目有30個目標文件。感興趣的童靴可以好好研究喲。
10、TorProxy應用實現了Android手機無線電電傳通訊(TOR)
TorProxy應用實現了Android手機無線電電傳通訊(TOR),和Shadow應用一起使用,可以使用手機匿名上網。從該項目源代碼中,可以掌握socket連接、管理cookie等方法。
Shadow項目 20個目標文件,TorProxy項目83個目標文件。感興趣的童靴可以好好研究喲。
11、jamendo-開源在線音樂
本項目共113個目標文件。
粗略介紹每個包作用:
com.teleca.jamendo.widget.*:用戶自定義組建,主要包括進度條、錯誤條、專輯倒影圖片控件、以及相關接口。
com.teleca.jamendo.util.:用戶自定義視圖切換器、圖片緩存、自定義觸摸監聽器(播放進度)、以及分享,計算音樂時間,設置語言等工具幫助類。
com.teleca.jamendo.util.download.:提供下載遠程音樂任務,以及相關接口回調,同時定義操作數據庫相關接口,以及觀察類。
com.teleca.jamendo.service.*:音樂的播放服務,以及下載服務。
com.teleca.jamendo.media.*:音樂播放器引擎以及相關接口(自定義類繼承播放器MediaPlayer)。
com.teleca.jamendo.gestures.*:讀取raw文件存取手勢類,以及相關接口,同時自定義手勢識別界面,用於手勢操作播放音樂。
com.teleca.jamendo.dialog.*:自定義對話框基類,以及相關對話框。
com.teleca.jamendo.db.*:sqlite數據庫操作相關類以及方法,包括相關基類,泛型。
com.teleca.jamendo.api.*:提供對象實體,歌曲、歌曲條目列表,歌曲專輯,歌手,以及相關IO異常處理等
com.teleca.jamendo.api.impl.*:通過服務端解析JSON格式數據並轉化為相應實體對象,列表等。
com.teleca.jamendo.api.util:提供訪問網絡之工具類,url請求緩存,封裝http請求等等。
com.teleca.jamendo.adapter.*:提供適配ListView列表適配器基類,以及相關子類.
com.teleca.jamendo.activity.*:提供操作界面activity,歡迎頁,關於,播放浏覽,播放,以及搜索,顯示歌曲等界面。
當然我們可以粗略知道UI布局文件夾,包括UI布局,菜單布局,動畫,xml(設置界面),值文件(不同語言版本),raw(手勢文件)
首先我們對其包結構以及相關包用途有個大致的了解,接下來,再慢慢來看看這些界面,做到心中有數。
Jamendo代碼裡面實現音樂搜索主要是使用了Apache Http 4.0 和JSON,Jamendo官網提供API供應用程序查詢數據,且提供了四種方式查詢,依次是:Artist,Tag,UserPlaylist和UserStarredAlbums。Jamendo提供
http://api.jamendo.com/get2/id+name+url+image+artist_name/album/jsonpretty/?n=5&order=ratingweek_desc供應用程序查詢和調用,采用JSON的方式與服務器進行數據交互。獲得調用的API URL鏈接,調用Caller.doGet() 實現方式是通過HttpClient,然後就是將獲得的Stream轉換成JSONArray構造所需要的String,最後就是調用 getAlbums(JSONArrayjsonArrayAlbums) 。
在Jamendo程序中,有一個很明顯的特征是存在一個全局的JamendoApplication類,此類繼承自Application,此類的作用主要是實現應用程序集的全局變量,也就是在任何一個Activity中都可以訪問的變量。它不會因為Activity的生命周期結束而消失。通過繼承自Application,我們能夠實現這個目標。
主界面主要由兩部分構成,一個Header和一個ListView,Header部分由一個ViewFlipper構成,主要分三種,一個loading畫面,一個Gallery顯示,一個獲取failed畫面,由於重點是下面的listView部分,所以本部分在此就不詳細說明了。
我們知道一般ListView顯示都離不開Adapter,在此也不例外,或繼承自BaseAdapter,然後重寫getView方法,或直接調用Android已經寫好的方法,之所以拿這個來講,是因為這裡稍微有點特殊,它並不是就直接實現getView方法然後,通過調用setAdapter顯示,而是在其中添加了一步,將原本能通過一個Adapter顯示的分成兩部分,加入Browse Jamendo 和Libray這兩個TextView,讓用戶更容易理解,通過分析這個listView的實現,可以加深對Adapter實現方式的理解。
在Jamendo中,主要是通過再定義一個SeparatedListAdapter來進行這個工作,我們來看看它是怎麼實現的:我理解的Adapter過程,首先通過調用getCount()來獲得總Row數目,然後對一行調用getView進行繪制,因此要實現在listView裡面另外加入兩部分,那麼對每一部分調用自己的繪圖方式,然後在繪制過程中,判斷if(position == 0) return headers.getView(sectionnum, convertView, parent);然後單獨調用其繪制函數進行繪制。
jamendo 在線音樂分析
JamendoApplication播放與下載服務
AlbumActivity 相冊視圖
ArtistActivity 藝術家視圖
BrowsePlaylistActivity 播放列表視圖
DownloadActivity 下載界面視圖
HomeActivity 首頁視圖
IntentDistributorActivity 介紹視圖
PlayerActivity播放視圖
PlaylistActivity 播放列表視圖 自動保存播放列表
RadioActivity 收音機視圖 無線電導航
SearchActivity 搜索視圖
SettingsActivity 設置視圖
SplashscreenActivity閃屏視圖
StarredAlbumsActivity五星級相冊視圖 浏覽專輯列表 打開它所在的專輯
AlbumAdapter 相冊適配器
AlbumGridAdapter 相冊格子式適配器
ArrayListAdapter 數組式列表適配器
DownloadJobAdapter 下載任務適配器
ImageAdapter 圖片適配器
PlaylistAdapter播放列表適配器
PlaylistRemoteAdapter遠程播放列表適配器
PurpleAdapter紫色適配器
PurpleEntry
PurpleListener
RadioAdapter收音機適配器
ReviewAdapter評論適配器
SeparatedListAdapter分隔列表適配器
Album 相冊存儲數據
Artist 藝術家存儲數據
JamendoGet2Api API操作
License 自定義許可證(用戶)類
Playlist 播放列表存儲類
PlaylistEntry播放列表條目存儲類
PlaylistRemote遠程播放列表存儲類
Radio 自定義電台類
Review 自定義評論類
Track 軌跡類
WSError 錯誤類
AlbumBuilder
AlbumFunctions
ArtistBuilder
ArtistFunctions
JamendoGet2ApiImpl用於web請求的ApacheHTTP客戶端API的實現
JSONBuilder 抽象類
LicenseBuilder 認證生成
PlaylistBuilder 遠程播放列表生成
PlaylistFunctions 返回遠程播放列表
RadioBuilder 收音機生成
RadioFunctions 返回生成收音機組
ReviewBuilder 生成評論對象
ReviewFunctions 獲得評論
RSSFunctions 獲得id
TrackBuilder 生成跟蹤對象
TrackComparator 跟蹤比較
Caller 撥打功能
RequestCache 請求緩存
XMLUtil xml操作
AlbumDatabaseBuilder 專輯數據庫生成
Database 數據庫接口
DatabaseBuilder數據庫建設者模板 - 有利於從SQLite數據庫對象增加
DatabaseImpl采用Android的SQLite數據庫實施
RadioDatabaseBuilder 收音機數據庫生成
TrackDatabaseBuilder 跟蹤數據庫生成
AboutDialog關於對話框
AddToPlaylistDialog添加到播放列表對話框
AlbumLoadingDialog專輯加載對話框
ArtistLoadingDialog 藝術家加載對話框
LoadingDialog 加載對話框基類
LyricsDialog 歌詞對話框
PlayerAlbumLoadingDialog 專輯播放加載對話框
PlaylistRemoteLoadingDialog遠程播放列表加載對話框
StarredAlbumLoading 五星專輯載入對話框
TutorialDialog 教程信息顯示框
GestureCommand接口
GestureCommandRegister 簡單的手勢命令寄存器
GesturesHandler 處理程序的手勢
PlayerGestureCommandRegiser
PlayerGestureNextCommand
PlayerGesturePlayCommand
PlayerGesturePrevCommand
PlayerGestureStopCommand
自定義手勢類
PlayerEngine 播放引擎接口
PlayerEngineImpl 同上
PlayerEngineListener播放引擎偵聽接口
DownloadService 後台下載服務
PlayerService後台播放服務
DrawableAccessor繪制存取
FixedViewFlipper 固定視圖翻轉
Helper 各種隨機函數
ImageCache 緩存下載的圖像,節省帶寬和用戶的數據包
OnSeekToListenerImp 點觸事件
SeekToMode 枚舉
DownloadDatabase下載接口該數據庫存儲在一個外部的SD卡,更具體地說,每個SD卡已用於下載/jamendroid/ downloads.db參考下
DownloadDatabaseImpl 數據庫描述軌道數量
DownloadHelper 各種輔助功能
DownloadJob單一的遠程文件下載任務
DownloadJobBuilder下載任務生成
DownloadJobListener下載任務的監聽接口
DownloadManager所有下載的相關行動接口
DownloadManagerImpl下載管理接口
DownloadObserver下載觀察接口
DownloadProvider下載數據存儲接口
DownloadProviderDbImpl使用SqlLite數據庫存儲
DownloadTask文件下載線程
MediaScannerNotifier mp3文件下載文件掃描,並把它添加到Android的樂手的圖書館
AlbumBar 專輯欄
ArtistBar藝術欄
FailureBar通知用戶失敗欄
OnAlbumClickListener點擊專輯欄的接口
ProgressBar進程條欄
ReflectableLayout反映UI元素的容器
ReflectiveSurface
RemoteImageView圖片浏覽擴展類,允許遠程圖像輕松下載
該項目共113個目標文件!文檔多,易於學習。請感興趣的同學好好研究啊。
12、飛行歷 飛行模式 AirPlus
一款Android飛行模式自動切換工具,可以根據設定的時間自動進入和退出飛行模式,在無需關機的情況下讓手機更加省電,減少睡眠時間手機的輻射作用。
支持功能
1.快速進入和快速退出飛行模式
2.自定義添加,刪除,啟用,禁用飛行時間段
3.設置自動切換飛行模式的時間和重復日期
4.設置控制不受飛行模式控制的無線硬件
5.設置是否在切換飛行時進行震動提示
6.進入切換飛行模式10秒鐘提示(延遲飛行,立即飛行,取消飛行)
7.可以進行延遲飛行操作
8.檢測通話狀態,防止正在通話時切換飛行模式
9.設置延遲飛行的提醒間隔
10.設置音量鍵在飛行切換中的作用
分析如下:
Air 主要實現了飛機相關數據的封裝容器
AirAlertFullScreen 繼承Activity 實現飛行的全屏模式顯示
AirAlert 繼承AirAlertFullScreen 顯示信息
AirClockTextView 時鐘顯示的文本顯示控件
AirDigitalClock 設置數字時鐘 以及更新數字時鐘
AirModeController 飛行模式的控制,通過廣播實現。
AirModeRadioPreference 飛行模式的單選選擇設置。
AirPlusActivity 程序的主界面涵蓋了添加 刪除 菜單 等等功能
Airs 針對飛行數據的管理操作數據庫
AirService 後台運行實現了監聽電話以及關閉後的清除
DontPressWithParentLayout
RepeatPreference
SetAir 設置類操作相關數據
SettingsActivity 設置界面
AirDatabaseHelper 飛行數據庫的操作類
AirProvider 繼承 ContentProvider 實現存儲數據
AirAppWidgetReceiver 應用程序的廣播接受 主要負責程序的更新
AirEndReceiver 結束等操作
AirInitReceiver 啟動後的初始化
AirReceiver 飛行接受提示 飛行時區的變化以及相關事件的監聽
本項目共25個目標文件。文檔多,易於學習。請感興趣的同學好好研究啊。
13、Jchat
Android jChat 是一個 Android 手機上基於位置的聊天軟件,采用P2P通訊機制。
JChat 的編譯:
1、 配置環境,需要的軟件有Android 模擬器,JADE Leap(JADE是多agent開發框架),J2SE (至少1.5)。
2、 進入開發設置,運行模擬器,安裝JChat文件(可通過命令adb install\jChat.apk),運行JADE平台(可通過命令java -cp \JadeLeap.jar-Djade_domain_df_autocleanup=true jade.Boot -gui ),從模擬器中運行程序JChat,在JADE平台菜單中設置主機以及端口。最後在JChat程序菜單中點擊連接按鈕進行連接操作(詳情可以看官方文檔--下載包中有)。
3、 源碼分析之前,需要認真學習一下Jade的Android的編程(有聊天程序源碼下載,都在下載包中),編譯源碼,需要到google 中申請 map api 的key,不過由於神奇的國度制約的原因,申請連接的網站無法訪問,需要通過其它的方法,比如代理等等,申請到的key 需要放到 homepage.xml中。
下面來進行分析吧,分析只是針對源碼,其它的不涉及。
本項目共25個目標文件。
ContactListActivity程序的啟動頁,內部含有控制地圖以及Jade連接等操作,方法onConnected 是JadeGateWay裡面的回調方法。
ChatActivity 是聊天的主界面,主要通過JadaGateway操作連接,發送,接受等
ChatSessionNotificationManager聊天會話通知管理自定義類,記錄了所有的進程清單。
Contact 接觸者自定義類,含有名稱,電話號碼,狀態值,是否在sd卡裡面…。
ContactListAdapter接觸者列表適配器,主要用戶顯示聯系人列表的信息。
ContactListChanges接觸者列表變化的自定義類,接觸者列表狀態更新。
ContactLocation 接觸者位置類,是否有移動等動作。
ContactManager 接觸者管理類,主要負責接觸者的添加、刪減以及UI更新等功能。
ContactsPositionOverlay接觸者的位置顯示物,Overlay的子類,主要負責在地圖上顯示自定義圖像,內置滾動與否以及圖像大小改變與否,在地圖上話畫在線聯系人以及場景等。
ContactsUpdaterBehaviour主要表現在其設置由MsnAgent執行。它基本上執行主要業務:定期更新的DF的手機中所有接觸的位置(由模擬的GPS更新)。
GeoNavigator 自定義導航類,啟動或關閉聯絡位置的更新。
GuiEventHandlerUI處理類。
IEventHandler 事件處理類接口。
JadeParameterDialog Jade參數設置對話框。
JChatApplication 應用程序類,存貯了全局變量信息,以及初始化服務器以及端口號,手機號等
MsnAgent 消息代理(Jade的Android的編程)
MsnEventMgr消息事件的自定義類,含有事件名,地圖存儲事件等參數信息,
MsnSession 消息會話,含有所有參與者的電話號碼,以及消息,
MsnSessionAdapter消息會話適配器,顯示消息會話視圖。
MsnSessionManager消息會話管理的自定義類,主要是啟動會話,添加會話,移除會話,返回會話,添加消息到會話等操作。
MsnSessionMessage消息會話消息的自定義累,含有時間、內容、發送者姓名以及電話號碼等。
MultiSelectionListView多選列表
SendSMSActivity 發送消息界面,執行發送任務。
SMSIntentReceiver消息接收廣播,主要負責消息的接收。
程序主要是已消息會話為主,引進了Google地圖顯示聯系人的位置等信息。
本項目共25個目標文件,還有測試聊天程序7個目標文件,以及開發文檔等,感興趣的童靴好好研究下吧。
14、Android下的加密信息客戶端WhisperSystems-TextSecure
TextSecure是Android下的加密信息客戶端,旨在增強用戶和企業通信的安全性。
本項目共289 個目標文件,喜歡的童靴就好好研究下吧。
15、ipcamera-for-android 手機變成IPCamera
一款將Android手機變成IP Camera的軟件,在同一個網路,你可以在任意的浏覽器查看手機監控視頻。其中實現了如何透過LocalSocket采集純H.264視頻流。如何封裝FLV格式視頻文件。如何集成一個內置的Web Server。
本項目共7個目標文件,但需要編譯jni文件下有c++文件。感興趣的同學好好研究下吧。
16、OpenSudoku一個簡單的九宮格數獨游戲
OpenSudoku是一個簡單的九宮格數獨游戲。從代碼中可以學習到如何在視圖中顯示表格數據,以及如何和一個網站交互等技術。它旨在通過手指和鍵盤控制。它預裝90在3個難度級別的謎題,更多的難題,可以從網上下載,它也允許你輸入自己的難題。
本項目共54 個目標文件,還含有其它測試項目。感興趣的同學好好研究下。
17、quitesleep手機電話功能軟件
QuiteSleep 是 Android 手機的一個小軟件,它可以控制你在睡眠期間誰可以打電話進來打攪你,也可以定義其他喚醒事件,如果處於靜音狀態,該軟件會給打電話的人發送一條你設定好的短信,告訴他別來打攪你的睡眠。
本項目共74 個目標文件。感興趣的同學好好研究下。
18、Android全能視頻播放器 VPlayer
VPlayer 是一款Android 平台上最好的媒體播放器,具有很多實用和方便的功能,干淨簡潔的界面,加上流暢的播放處理能力,大大增強了Android的視頻播放功能。它支持所有流行的視頻播放格式。
VPlayer是一款安卓平台上較為知名的播放器程序,新的版本中帶來了硬件加速解碼和渲染功能,能夠讓絕大部分的Android設備都能夠播放MKV/AVI/MOV/FLV/TS/M4V/ 3GP視頻。
VPlayer是一個硬件加速Android的媒體播放器。它使用硬件視頻解碼器,各種容器和音頻編解碼器組合。
雙核心/高端設備(轟動,銀河S/S2,NEXUS- S),可以播放720p甚至1080pMKV /AVI/MOV /FLV/ TS/ M4V /3GP。VPlayer水渠不到MoboPlayer MX視頻播放器,如西南的球員bettery。ICS的設備可以發揮完整的硬件加速1080P文件,蜂窩片可以播放720P的MKV與完整的硬件加速。如果您使用MIUI,CM7或非官方的光盤不能播放MKV/ FLV / MOV / AVI使用的默認播放器,VPlayer是最好的解決辦法。
19、rokon_src_2-0-3_游戲引擎
Rokon 是Android平台一個開源(New BSD)的2D OpenGL 游戲引擎,目前版本為 2.0.3 (10/07/09,10/08/17更新到2.1.0) 。其中集成了Box2D,幫助你在游戲中實現物理效果。
引擎作者已經停止更新了,所以大家請謹慎選用這個引擎,畢竟還有一些BUG沒有修改。
詳細資料地址:http://www.eoeandroid.com/thread-26588-1-1.html
本項目共113 個目標文件,感興趣的童靴就研究下。
20、Angle v1.0_2D游戲引擎
Angle是一款專為Android平台設計的,敏捷且適合快速開發的2D游戲引擎,基於OpenGL ES技術開發。該引擎全部用Java代碼編寫,並且可以根據自己的需要替換裡面的實現,缺陷在於文檔不足,而且下載的代碼中僅僅包含有少量的示例教程。
本項目共42 個目標文件,感興趣的童靴就研究下。
21、sipdroid語音及視頻通話 (經典)
Sipdroid是一個運行於Android手機平台上的SIP/VoIP客戶端。
開發環境的配置
下載下來SipDroid源代碼後,不能直接導入到eclipse中,否則是無法使用和編譯的。
首先需要通過command line參照工程目錄下的BUILT.txt文件對工程進行update。
如:android update project-p . -t 2(這裡 -p指的是 --path -t指的是 --target)
由於是開源軟件,需要版本控制的服務器,可以安裝Subclipse(可以參見官網)
這樣就可以將工程import到eclipse中了。
整理一些Android視頻通話技術開發的資料:
SipDroid是一款開源的SIP/Voip客戶端軟件,針對Android手機開發平台。它是通過SIP provider來提供電話通信服務的,在它的最新的版本1.5.5beta中也提供了視頻通話的服務。
它運行在標准的SIP協議之上,由於Android內核本身沒有提供SIP協議棧,所以SipDroid軟件中通過JNI直接實現了SIP協議棧。它能夠在如下一些網絡中提供VoiP服務:WLAN、3G、EDGE網絡。甚至能夠和Skype、Google Talk, MSN, Yahoo, AIM, and ICQ等用戶進行通話。但前提必須到一些SIP provider注冊賬號(有免費的,也有收費的),SipDroid強烈建議使用PBXes這個sip provider來得到服務。
對於SipDroid實現視頻通話的原理,目前的理解是:發送方是將是將視頻數據傳輸到視頻流媒體服務器,然後再傳輸給接收方的。具體細節目前不是很清楚,因為涉及到許多通信協議。
本項目共250 個目標文件,還有jni文件下c++文件需要編譯。感興趣的同學必須得好好研究研究。
還有收集到的資源------888個經典Logo
還有好多……
如何閱讀java與c++項目
frameworks 目錄(核心框架——java及C++語言)
|-- base (基本內容)
| |-- api (?都是xml文件,定義了java的api?)
| |-- awt (AWT庫)
| |-- build (空的)
| |-- camera (攝像頭服務程序庫)
| |-- cmds (重要命令:am、app_proce等)
| |-- core (核心庫)
| |-- data (字體和聲音等數據文件)
| |-- docs (文檔)
| |-- graphics (圖形相關)
| |-- include (頭文件)
| |-- keystore (和數據簽名證書相關)
| |-- libs (庫)
| |-- location (地區庫)
| |-- media (媒體相關庫)
| |-- obex (藍牙傳輸庫)
| |-- opengl (2D-3D加速庫)
| |-- packages (設置、TTS、VPN程序)
| |-- sax (XML解析器)
| |-- services (各種服務程序)
| |-- telephony (電話通訊管理)
| |-- test-runner (測試工具相關)
| |-- tests (各種測試)
| |-- tools (一些叫不上名的工具)
| |-- vpn (VPN)
| `-- wifi (無線網絡)
|-- opt (可選部分)
| |-- com.google.android (有個framework.jar)
| |-- com.google.android.googlelogin (有個client.jar)
| `-- emoji (standard message elements)
`-- policies (Product policies are operating system directions aimed at specific uses)
`-- base
|-- mid (MID設備)
`-- phone (手機類設備,一般用這個)
hardware 目錄 (部分廠家開源的硬解適配層HAL代碼)
|-- broadcom (博通公司)
| `-- wlan (無線網卡)
|-- libhardware (硬件庫)
| |-- include (頭文件)
| `-- modules (Default (and possibly architecture dependents) HAL modules)
| |-- gralloc (gralloc顯示相關)
| `-- overlay (Skeleton for the "overlay" HAL module.)
|-- libhardware_legacy (舊的硬件庫)
| |-- flashlight (背光)
| |-- gps (GPS)
| |-- include (頭文件)
| |-- mount (舊的掛載器)
| |-- power (電源)
| |-- qemu (模擬器)
| |-- qemu_tracing (模擬器跟蹤)
| |-- tests (測試)
| |-- uevent (uevent)
| |-- vibrator (震動)
| `-- wifi (無線)
|-- msm7k (高通7k處理器開源抽象層)
| |-- boot (啟動)
| |-- libaudio (聲音庫)
| |-- libaudio-qsd8k (qsd8k的聲音相關庫)
| |-- libcamera (攝像頭庫)
| |-- libcopybit (copybit庫)
| |-- libgralloc (gralloc庫)
| |-- libgralloc-qsd8k (qsd8k的gralloc庫)
| |-- liblights (背光庫)
| `-- librpc (RPC庫)
|-- ril (無線電抽象層)
| |-- include (頭文件)
| |-- libril (庫)
| |-- reference-cdma-sms (cdma短信參考)
| |-- reference-ril (ril參考)
| `-- rild (ril後台服務程序)
`-- ti (ti公司開源HAL)
|-- omap3 (omap3處理器)
| |-- dspbridge (DSP橋)
| |-- libopencorehw (opencore硬件庫)
| |-- liboverlay (overlay硬件庫)
| |-- libstagefrighthw (stagefright硬件庫)
| `-- omx (omx組件)
`-- wlan (無線網卡)
prebuilt 目錄 (x86和arm架構下預編譯的一些資源)
.
|-- android-arm (arm-android相關)
| |-- gdbserver (gdb調試器)
| `-- kernel (模擬的arm內核)
|-- android-x86 (x86-android相關)
| `-- kernel (空的)
|-- common (通用編譯好的代碼,應該是java的)
|-- darwin-x86 (drawin x86平台)
| `-- toolchain (工具鏈)
| |-- arm-eabi-4.2.1
| |-- arm-eabi-4.3.1
| `-- arm-eabi-4.4.0
|-- darwin-x86_64 (drawin x86 64bit平台)
|-- linux-x86 (linux x86平台)
| `-- toolchain (工具鏈,我們應該主要用這個)
| |-- arm-eabi-4.2.1
| |-- arm-eabi-4.3.1
| |-- arm-eabi-4.4.0
| `-- i686-unknown-linux-gnu-4.2.1(x86版編譯器)
|-- linux-x86_64 (linux x86 64bit平台)
|-- windows (windows平台)
`-- windows-x86_64 (64bit windows平台)
system 目錄 (底層文件系統庫、應用及組件——C語言)
.
|-- Bluetooth (藍牙相關)
|-- core (系統核心工具盒接口)
| |-- adb (adb調試工具)
| |-- cpio (cpio工具,創建img)
| |-- debuggerd (調試工具)
| |-- fastboot (快速啟動相關)
| |-- include (系統接口頭文件)
| |-- init (init程序源代碼)
| |-- libacc (輕量級C編譯器)
| |-- libctest (libc測試相關)
| |-- libcutils (libc工具)
| |-- liblog (log庫)
| |-- libmincrypt (加密庫)
| |-- libnetutils (網絡工具庫)
| |-- libpixelflinger (圖形處理庫)
| |-- libsysutils (系統工具庫)
| |-- libzipfile (zip庫)
| |-- logcat (查看log工具)
| |-- logwrapper (log封裝工具)
| |-- mkbootimg (制作啟動boot.img的工具盒腳本)
| |-- netcfg (網絡配置netcfg源碼)
| |-- nexus (google最新手機的代碼)
| |-- rootdir (rootfs,包含一些etc下的腳本和配置)
| |-- sh (shell代碼)
| |-- toolbox (toolbox,類似busybox的工具集)
| `-- vold (SD卡管理器)
|-- extras (額外工具)
| |-- latencytop (a tool for software developers,identifying system latency happen)
| |-- libpagemap (pagemap庫)
| |-- librank (Java Library Ranking System庫)
| |-- procmem (pagemap相關)
| |-- procrank (Java Library Ranking System相關)
| |-- showmap (showmap工具)
| |-- showslab (showslab工具)
| |-- sound (聲音相關)
| |-- su (su命令源碼)
| |-- tests (一些測試工具)
| `-- timeinfo (時區相關)
`-- wlan (無線相關)
`-- ti (ti網卡相關工具及庫)
packages 目錄
.
|-- apps (應用程序庫)
| |-- AlarmClock (鬧鐘)
| |-- Bluetooth (藍牙)
| |-- Browser (浏覽器)
| |-- Calculator (計算器)
| |-- Calendar (日歷)
| |-- Camera (相機)
| |-- CertInstaller (在Android中安裝數字簽名,被調用)
| |-- Contacts (撥號(調用)、聯系人、通話記錄)
| |-- DeskClock (桌面)
在Android客戶端應用開發中,往往需要短信驗證碼或者隨機驗證碼來限制用戶的操作或者認證。短信驗證碼是為了對用戶進行認證,主要通過Http協議等通信協議實現;隨機驗證碼
前言 為了更好地閱讀本文,你需要先閱讀Android apk動態加載機制的研究這篇文章,在此文中,博主分析了Android中apk的動態加載機制,並在文章的
當我們在手機上安裝360安全衛士時,手機屏幕上時刻都會出現一個小浮動窗口,點擊該浮動窗口可跳轉到安全衛士的操作界面,而且該浮動窗口不受其他activity的覆蓋影響仍然可
設置adb的usb連接配置 把需要測試的手機連接入電腦,通過系統查找USB連接配置,找到廠商ID: 把ID添加進adb_usb.ini;使