1.內存||效率程序員
GC這東西對於開發人員用起來比較爽,但對於技術總監或產品總監來講,他們並不在意,在意的是用戶運行App的流暢度,待你開發完了,笑眯眯的走過來,讓你測試N個適配器,煩都煩死你。 web
說到這裏,不由自主的對比安卓和蘋果,身處中國這麼個「人手一個」安卓手機的國家,各類翻版的系統應運而生,苦了咱們程序員啊,各類品牌機各類適配器各類側,我擦啊!既要考慮適配又要考慮內存(雖然說蘋果這方面確定也考慮) 再看看蘋果,一個iphone4開機啓動剩餘內存只有512M左右,人家程序隨便怎麼跑,開好幾個軟件依然流暢。 編程
GC啊,想說愛你不容易!app
國內的安卓推廣平臺如此之多,許許多多廣告軟件必須得出來,隨便下載一個遊戲,一打開就彈個廣告窗口,看個小說也給你忽然來個廣告。 因此說選擇一個好的軟件很重要平臺。 蘋果的軟件,開發很快速,用的工具,用的組件全是一套東西,想不快都難,並且上傳至app store也是須要通過嚴格審覈,最近好像app store又要開發者提供詳細的我的信息,不然上傳app不予以經過。 哎,綠色的環境啊!iphone
迴歸正題::異步
gzip 壓縮http請求的數據,而且設置鏈接時間和響應時間工具
ListView 圖片+文字列表,異步加載圖片,而且在圖片滑動時利用 不加載圖片組件化
下載web-image,利用線程池(可分爲普通線程和核心線程的異步下載任務),將下載任務小,零碎文件置於核心線程,將圖片下載任務放置在普通線程,避免因爲文件過大堵塞線程池,從而最大限度的優化下載進度佈局
儘可能少用static靜態變量來引用大的資源對象,好比:Context上下文測試
保證Cursor佔用的內存被及時的釋放掉,而不是等待GC來處理。而且Android明顯是傾向於編程者手動的將Cursorclose掉
應用開發中自定義View的時候,交互部分,千萬不要寫成線程不斷刷新界面顯示,而是根據TouchListener事件主動觸發界面的更新
線程也是形成內存泄露的一個重要的源頭。線程產生內存泄露的主要緣由在於線程生命週期的不可控
UI組件須要用到的圖片是apk包自帶的,那麼一概用setImageResource或者setBackgroundResource,而不要根據resourceid(注意:get(getResources(),R.drawable.btn_achievement_normal)該方法經過resid轉換爲drawable,須要考慮回收的問題,若是drawable是對象私有對象,在對象銷燬前是確定不會釋放內存的。)
2. UI優化
Layout:
Layout組件化,儘可能使用merge及include複用
CSS:
使用styles,複用樣式定義
軟鍵盤:
軟鍵盤的彈出控制,不要讓其覆蓋輸入框
數字、字母和漢字混排佔位問題:將數字和字母全角化.(因爲如今大多數狀況下咱們的輸入都是半角,因此字母和數字的佔位沒法肯定,可是一旦全角化以後,數字、字母的佔位就和一個漢字的佔位相同了,這樣就能夠避免因爲佔位致使的排版問題。)
佈局組件:
複雜佈局使用RelativeLayout