91亚洲精品国产第一区_和女领导做爰呻吟_天干天夜啪天天碰_黄色在线免费电影

不平凡軟件,始于2014

首頁 | 加入收藏 | 設為首頁

15565077981

您當前的位置:首頁 >  精彩分享>詳細

鄭州軟件開發告訴你安卓軟件開發注意事項有哪些

發布者: 鄭州軟件開發 12-05

      安卓軟件開發作為近兩年比較熱門的開發語言項目,受到了眾多軟件開發人員的推崇。對于安卓軟件開發新人來說,有很多工作中可能會遇到的陷阱需要注意,下面不平凡軟件小編就結合自己四年安卓開發經驗為大家詳細講解安卓系統開發中需要注意的一些問題。

  •    在Android library中不能使用switch-case語句訪問資源ID:在Android library中不能使用switch-case語句訪問資源ID的原因分析及解決方案
  •    不能在Activity沒有完全顯示時顯示PopupWindow和Dialog:popupwindow - Problems creating a Popup Window in Android Activity
  •    在多進程之間不要用SharedPreferences共享數據,雖然可以(MODE_MULTI_PROCESS),但極不穩定:android - MODE_MULTI_PROCESS for SharedPreferences isn't working
  •    有些時候不能使用Application的Context,不然會報錯(比如啟動Activity,顯示Dialog等):
安卓軟件開發注意事項有哪些
  •    同一個應用的JNI代碼,不要輕易換NDK編譯的版本,否則會有很多問題(主要是一些方法實現不一樣,并且高版本對代碼的檢測更嚴格),比如r8沒有問題,但到r9就有問題了,這是個大坑;
  •    Android的JNI代碼中,有返回類型的函數沒有返回值編譯的時候也不會報錯;
  •    當前Activity的onPause方法執行結束后才會執行下一個Activity的onCreate方法,所以在onPause方法中不適合做耗時較長的工作,這會影響到頁面之間的跳轉效率;
  •    謹慎使用Android的透明主題,透明主題會導致很多問題,比如:如果新的Activity采用了透明主題,那么當前Activity的onStop方法不會被調用;在設置為透明主題的Activity界面按Home鍵時,可能會導致刷屏不干凈的問題;進入主題為透明主題的界面會有明顯的延時感;
  •    不要在非UI線程中初始化ViewStub,否則會返回null;
  •    公共接口一定要考慮到代碼重入的情況,能設計為單例就盡量用單例;
  •    不要通過Bundle傳遞大塊的數據,否則會報TransactionTooLargeException異常:java - Issue: Passing large data to second Activity
  •    盡量不要通過Application緩存數據,這不穩定:不要在Android的Application對象中緩存數據!
  •    盡量不要使用AnimationDrawable,它在初始化的時候就將所有圖片加載到內存中,特別占內存,并且還不能釋放,釋放之后下次進入再次加載時會報錯;
  •    9圖不能通過tinypng壓縮,不然會有問題;
  •    genymotion模擬器快是因為它是基于x86架構的,如果你的應用中用到了so,但沒有x86架構的so,只能放棄使用它;Android Studio的模擬器也一樣;
  •    Eclipse的Android開發環境配置好后不要輕易升級ADT和build tools,不然會浪費你很多時間,還有就是一個workspace中的工程不要太多,不然每次啟動都會很慢;
  •    Android studio每個版本、gradle每個版本差別都比較大(我是這樣認為的),對于jni代碼的編譯建議在Eclipse中進行,如果在Android studio中開發jni會浪費很多時間,主要是編譯腳本的配置比較麻煩;
  •    Eclipse中的Lint太不靠譜,特別是主工程中依賴library的時候,很多提示都是有問題的,建議使用Android Studio的工程清理工具,特別推薦;
  •    不同API版本的AsyncTask實現不一樣,有的是可以同時執行多個任務,有的API中只能同時執行一個線程,所以在程序中同時執行多個AsyncTask時有可能遇到一個AsyncTask的excute方法后很久都沒有執行。調用AsyncTask的excute方法不能立即執行程序的原因分析及改善方案
  •    同一個應用,相同的圖片分別放在drawable-xxhdpi、drawable-xhdpi、drawable-hdpi、drawable-mdpi、drawable-ldpi中,在同一設備中占用的內存會大不一樣(設備的dpi是固定的,圖片放在不同的dpi文件夾下,在設備上顯示時需要將圖片轉換成和當前屏幕一樣dpi后在設備中顯示,所以即使該圖片在不同dpi文件夾下大小一樣,但放在內存中的大小卻不是一樣的,并不一定是長*寬*4),做應用的內存優化之前可以先看一看你的工程是如何做屏幕適配的,是否有優化的空間。強烈推薦這個屏幕適配視頻教程,花兩個半小時就能看完:Android-屏幕適配全攻略
  •    謹慎對待數據庫升級(比如需要在原數據庫中增加字段),避免數據丟失或者操作數據庫異常的情況,數據庫升級方法可以查閱《第一行代碼》P263;
  •    多個程序共用一套代碼(一套代碼,在桌面上多個圖標)時需要處理好不同入口進入時的堆棧問題;
  •    使用Adapter的時候,如果你使用了ViewHolder做緩存,在getView的方法中無論這項的每個視圖是否需要設置屬性(比如TextView設置的屬性可能為null,item的某一個按鈕的背景為透明、某一項的顏色為透明等),都需要為每一項的所有視圖設置屬性(textview的屬性為空也需要設置setText(""),背景透明也需要設置),否則在滑動的過程中會出現內容的顯示錯亂。
  •    謹慎使用Android的多進程,多進程雖然能夠降低主進程的內存壓力,但會遇到如下問題:(1)不能實現完全退出所有Activity的功能(如果有同行在應用內采用多進程成功實現過完全退出程序歡迎溝通交流);(2)首次進入新啟動進程的頁面時會有延時的現象(有可能黑屏、白屏幾秒,是白屏還是黑屏和新Activity的主題有關);(3)應用內多進程時,新啟動一個進程都會重新跑一次Application的onCreate方法,不上重新創建一個Application,但會重新跑Application的onCreate,這樣就不能在Application中緩存數據作為內存共享的途徑了;(4)多進程間通過SharedPreferences共享數據時不穩定,具體可以查閱《Android開發藝術探索》。
  •    使用Toast時,建議定義一個全局的Toast對象,這樣可以避免連續顯示Toast時不能取消上一次Toast消息的情況(如果你有連續彈出Toast的情況,避免使用Toast.makeText);
  •    View的面積越大繪制的時間就越長,透明通道對View的繪制速度影響很大;
  •    不要通過Msg傳遞大的對象,會導致內存問題。

      不平凡軟件,鄭州軟件開發公司,鄭州軟件開發,鄭州軟件定制,鄭州微信開發,鄭州進銷存定制開發,鄭州OA系統開發,鄭州軟件開發公司

返回列表

上一篇

商城網站賣產品運用好“綁”字可以讓你的銷量直線上升

下一篇

鄭州做軟件告訴你企業財務管理軟件配置方式及優缺點對比

相關新聞

相關案例