手机游戏优化技巧
手機游戲優化技巧:
??? a.減少內存使用:
????? —盡可能避免使用對象:具備某種意義功能時才使用對象,否則用基本數據類型;
????? —重用對象:重用對象(初始化對象狀態)而不重新創建;
????? —顯示清除對象:顯示設置無用對象為空,以便來及收集器能盡快釋放內存;
??? b.最小化網絡數據;
??? c.去除不必要圖形:去除動畫幀,使用圖形旋轉或變形(90度、180度等);
??? d.代碼優化技巧:
????? —不帶調試信息的編譯:調試游戲代碼后,用-g:none選項關閉調試信息,如javac -g:none MyMIDlet.jar;
????? —去除不必要賦值:如
????????????????????????? for(int i=0;i<size();i++) a=(b+c)/i;//循環size()次就賦值size()次
??????????????????????? 改寫成:
????????????????????????? int s=size();
????????????????????????? int tmp=b+c;
????????????????????????? for(int i=0;i<s;i++) a=tmp/i;//一次賦值即可
????? —去除常用子表達式:如
????????????????????????? b=Math.abs(a)*c;
????????????????????????? d=e/(Math.abs(a)+b);//兩次調用Math.abs函數;
????????????????????????? 改寫成:
????????????????????????? int tmp=Math.abs(a);
????????????????????????? b=tmp*c;
????????????????????????? d=e/(tmp+b);//一次調用Math.abs函數;
????? —利用局部變量:如
????????????????????? for(int i=0;i<1000;i++) a=obj.b*i;//多次循環訪問對象的變量
????????????????????? 改寫成
????????????????????? int localb=obj.b;
????????????????????? for(int i=0;i<1000;i++) a=localb*i;
????? —擴展循環:如
????????????????????? for(int i=0;i<1000;i++)? a[i]=25;//循環1000次
????????????????????? 改寫成
????????????????????? int i=0;
????????????????????? for(j=0;j<100;j++) {
???????????????????????? a[i++]=25;
???????????????????????? a[i++]=25;
???????????????????????? a[i++]=25;
???????????????????????? a[i++]=25;
???????????????????????? a[i++]=25;
???????????????????????? a[i++]=25;
???????????????????????? a[i++]=25;
???????????????????????? a[i++]=25;
???????????????????????? a[i++]=25;
???????????????????????? a[i++]=25;???????????????????????
????????????????????? }//循環100次
??????? —代碼緊縮和混淆:利用代碼緊縮器(code shrinker)和代碼混淆器(cod obfuscator);
????????????????????????? 開源工具ProGuard混合代碼緊縮器(code shrinker)和代碼混淆器;
????? e.探查手機游戲代碼:WTK的"preference"->"Monitor"->"profiler"勾選"Enable profiling";
????????????????????????? WTK模擬器退出應用程序后會自動運行探查器并顯示方法及其調用次數、執行時間、CPU占比;
????? f.監視手機游戲內存使用:WTK的"preference"->"Monitor"->"Memory Monitor"勾選"Enable Memory Monitor";
????????????????????????? 激動內存監視在WTK模擬器運行MIDlet時顯示內存使用情況,尤其是各類對象內存使用情況;
總結
- 上一篇: Tomcat服务OTA发布J2ME应用(
- 下一篇: VC++程序开机自启动(注册表上注册)