內(nèi)存優(yōu)化:
10年積累的網(wǎng)站建設、成都網(wǎng)站建設經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先做網(wǎng)站后付款的網(wǎng)站建設流程,更有博野免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
(1) NDK 和 JNI
(2)對于圖片處理使用openGL的texture;
2.bitmap優(yōu)化:
在生成bitmap時根據(jù)bitmap的大小判斷是否進行縮放,縮放代碼:
BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inJustDecodeBounds = true; BitmapFactory.decodeFile(path,opts) //獲取寬高 int width = opts.outWidth; int height = opts.outHeight; //重新獲取bitmap對象前要將: opts.inJustDecodeBounds = false;
3.代碼的優(yōu)化:
(1)靜態(tài)變量太多會引起內(nèi)存泄露;
(2)使用Application context:如果想保持一個長期生命的對象時需要一個context對象,則調(diào)用getApplicationContext()使用Application context;
(3)及時關閉資源,eg:cursor;
(4)使用Bitmap后及時調(diào)用recyle()方法回收bitmap對象;
(5)對Adapter優(yōu)化,使用Holder;
(6)代碼的微優(yōu)化:
盡量減少創(chuàng)建新對象;
將類、方法、變量的可見性設為最低;
針對字符串的拼接使用StringBuffer代替String;
不要在循環(huán)中申明臨時變量,不要在循環(huán)中捕獲異常;
如果對于線程安全沒有要求,盡量使用線程不安全的集合對象;
使用集合對象如果事先知道其大小,則可以在構(gòu)造方法中設置初始大?。?/p>
文件讀取操作,需要使用緩存類及時關閉文件;
慎用異常,使用異常會導致性能降低;
如果程序頻繁創(chuàng)建線程,則可以考慮使用線程池;
4.Android UI優(yōu)化:
(1)盡量使用系統(tǒng)資源;
(2)使用系統(tǒng)的Style要在使用的資源面前在“?android”,而不是@android////
(3)查看系統(tǒng)資源:進入android-sdk\platforms\android-8\data\res;
(4)抽取相同的布局;
(5)精簡UI層次:
merge標簽的使用,所有Activity的根節(jié)點都是FrameLayout,如果所創(chuàng)建Layout是FrameLayout則使用merge標簽作為根節(jié)點,其他布局則不可用;
使用merge標簽的兩個限制:
merge只能作為xml布局的根標簽;
當inflater以merge為開頭的布局文件時,必須指定一個父ViewGroup并且必須設置attachToRoot為true;
(6)界面延遲加載技術:
ViewStub是一個隱藏的不占用內(nèi)存文件的視圖對象,可以運行時延時健在布局資源文件。當ViewSub被設置為可見或者調(diào)用inflate()方法時才會真的區(qū)加載這個布局資源文件;
(7)crash的處理:應用超時無響應;
Thread.setDefaultUnCaughtExceptionHandler(Thread.unCaughtExceptionHandler)