新人開發理念
1 activity 是每個功能頁面的入口
2 動畫效果需要配合資源檔中,動畫的定義
3 檔案的讀取是有許可權控制的
4 布局應該盡量簡單,這樣才能讓程式跑的飛快
前記
重新開始一個新的apk項目,之前的“公用單車”沒搞完又放棄了,希望這個項目不會繼續無疾而終。把自己做這個項目的過程用部落格記錄下來,也算是對自己的一個督促。
規劃
1 先做一個基礎demo
2 完善功能
3 重構
第一日
之前找了一個coolreader 的源碼,感覺聽靠譜的,今天先參考下。
對此源碼有興趣的童鞋,可以到網上搜尋下,還挺好找的。地址我就不提供了。
1 關於builder
查看項目屬性時候發現的,突然想起,android的編譯器是挺好玩的,最近公司的項目在做個android 套殼的功能:繞過系統的檢測,利用已經安裝的apk調用沒安裝的apk。
原理說穿了,也聽簡單,就是利用java 的反射機制。但是遇到一個問題,被調用的apk,包名並不一致,一般開發android 的人都知道,開發的時候編譯,如果R 檔案不在對應的包名路徑當中,是會報錯的,那這個編譯報錯,其實就是android pre compiler 檢查出來的。
另外開發的時候從workspace中匯入存在的android 工程,是會報錯的,這個也是android pre compiler 犯傻,好象是個bug,解決方案就是把workspace 定義到別的位置去。
2 關於intent
從文檔看到,intent 是對動作的描述,用來啟動activity,service,或單純用來通訊。而且還能在androidManifest 中利用intent-filter 進行處理。
從construct 看出,能傳遞action,context 和 對應的class,用於後續的startActivity 或者 bindService
3 關於androidManifest
這個檔案相當重要,如果要調用activity,需要在此檔案中註冊,而且檔案本身是加密過的,雖然解密方法已經到處都是。
重要內容:apkPackageName, apkVersionName, apkVersionCode(商店之流用於檢測應用版本號碼)
4 關於io
android 的io 還是很方便的,利用File.listFiles() 就可以擷取所有的檔案。
而且HttpClient 還特地整合到android 中去,非常方便使用。
5 listAdapter
這個東西很好用,直接可以綁定需要List,可以方便做列表管理,和mfc 的dataAdapter 很類似,也有對應的文章管理內容
6 showDialog
showDialog(int),這個定義還是挺好用的,但是必須得明確,需要配合new AlertDialog.Builder(this).create();注意new Builder(this)的時候,context 傳進去的應該是當前activity(extends from context),而不是this.getApplicationContext(),因為getApp….. 返回的是applicationContext,這個context 是全域唯一的,但是並不支援後續showDialog 的需求,說到這個,activityContext 則是當前activity 的context,因為activity 可以銷毀,重建,所以context 應該也會被銷毀,重建。
那麼關於這個context 在何時使用,則要看調用的對象是長周期還是短周期,另外還要看對應的activity 的生命週期,否則會跑著跑著程式掛掉,甚至記憶體流失。