婷婷精品国产亚洲av麻豆不片_中国成人一级黄色毛片_亚洲国产成人高清影视在线_尤物yw国产午夜精品视频_影音先锋aⅴ资源 中文字幕 少妇_国产成人无码野外_av免费中文字幕在线观看_欧美亚洲综合久久997_在线精品日韩欧美_一级黄色免费高清无码视频

Android開發(fā)經(jīng)驗(yàn)匯總

文章分類:公司動(dòng)態(tài) 發(fā)布時(shí)間:2013-08-09 原文作者:tbkj 閱讀( )

1. 默認(rèn)情況用戶按下Back鍵是不會(huì)銷毀當(dāng)前Activity的,Activity依舊存在于內(nèi)存中,如果想要徹底kill掉這個(gè)程序可以在代碼中做如下處理:
1
@Override<br>   public boolean onKeyDown(int keyCode, KeyEvent event) {<br><br>     if (keyCode == KeyEvent.KEYCODE_BACK) {<br>         /* <br>          * If you want to kill the process.<br>          * Or maybe you can alert a dialog to make user choose. <br>             */<br>         finish();<br>       }<br><br>       return super.onKeyDown(keyCode, event);<br><br> }<br><br>   @Override<br>   protected void onDestroy() {<br><br>        System.exit(0);<br>     //Or.<br>       //android.os.Process.killProcess(android.os.Process.myPid());<br><br>   }<br>
?
2. 在Manifest.xml里可以給Activity指定一個(gè)模板,從而讓Activity更加靈活的滿足我們的需求.比如android:theme="@android:style/Theme.Dialog"可以讓窗口變成像Dialog那樣的懸浮的彈出窗體. 如果在代碼中, 可以使用Activity類的setTheme(int resid)函數(shù).
 
3. 你能想象我之前一直在用Windows開發(fā)Android程序嗎?(我是一個(gè)MS fans =。=)但是最近涉及到Launcher開發(fā),編譯的時(shí)候還是在Linux下進(jìn)行方便。今早像往常一樣打開Eclipse,只不過是在Linux下,習(xí)慣性的啟動(dòng)模擬器,打開adb工具。。。wait!"adb shell"命令不起作用?。?? google了一下發(fā)現(xiàn)在Linux下和在windows下啟動(dòng)adb的方式不一樣。。好吧我承認(rèn)我小白了。。。記錄以下:
 Windows : adb shell
 Linux : ./adb shell
注意 ./和adb之間沒有空格哦 >o<
 
4. 編譯Launcher2時(shí)候經(jīng)常遇到的一個(gè)問題,編譯時(shí)報(bào)錯(cuò):
?
1
2
3
4
5
6
7
<div class="cnblogs_Highlighter"><pre class="brush:csharp">packages/apps/Browser/src/com/android/browser/R.java:10: duplicate class: <br>com.android.browser.R <br>public final class R { <br>^ <br>Note: Some input files use or override a deprecated API. <br>Note: Recompile with -Xlint:deprecation for details. <br>Note: Some input files use unchecked or unsafe operations. <br>Note: Recompile with -Xlint:unchecked for details. <br>2 errors <br>make: *** [out/target/common/obj/APPS/Browser_intermediates/classes.jar] <br>Error 41<br></pre>
</div>
<div>duplicate class。。。
</div>
<div>后來發(fā)現(xiàn)是因?yàn)槲矣胑clipse打開了Launcher的源碼,eclipse自動(dòng)生成了R文件,然后在編譯的時(shí)候又會(huì)生成一次R文件,所以產(chǎn)生了沖突,在編譯之前把gen文件夾里的東西刪掉就好了。</div>
<div>再跑一遍,it works!</div>
<div> </div>
5. 有時(shí)候我們會(huì)需要對(duì)模擬器設(shè)備進(jìn)行截圖,截圖方法給大家分享一下:
下載Android SDK以后有一個(gè)tools工具包,這個(gè)包里包含如一個(gè)工具ddms.bat。如下圖:
 
啟動(dòng)這個(gè)工具以后看到如下界面:
點(diǎn)擊菜單欄里的Device,選擇Screen Capture?;蛘哂每旖萱ICtrl+S,就可以彈出截圖窗口,可以copy也可以save,還提供了一個(gè)簡(jiǎn)單的旋轉(zhuǎn)角度功能。
大家看到這個(gè)ddms工具還有一些功能,但是如果你用eclipse開發(fā)的話可能用不到他們了。。。
 
6. Android獲得和設(shè)置桌面圖片的方法:
在Activity中,WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);可以拿到桌面管理器,然后:
wallpaperManager.getDrawable(); //獲得桌面圖片
wallpaperManager.setBitmap(bitmap); //設(shè)置桌面圖片。
 
7. Android判斷系統(tǒng)語(yǔ)言:
Locale l = Locale.getDefault();  可以拿到一個(gè)Locale對(duì)象,通過這個(gè)locale對(duì)象我們可以拿到很多信息,比如l.getLanguage(), l.getCountry(); enjoy it...
 
8. 判斷系統(tǒng)是12小時(shí)制還是24小時(shí)制:
ContentResolver cv = this.getContentResolver();           
String strTimeFormat = android.provider.Settings.System.getString(cv,android.provider.Settings.System.TIME_12_24);  
拿到的這個(gè)str可能是Null,12,24.
 
9. 在跟sdcard交互的時(shí)候不要手寫絕對(duì)路徑,因?yàn)椴煌姹镜腁ndroid系統(tǒng)sdcard路徑可能不一樣。
通過android.os.Environment.getExternalStorageDirectory()可以拿到當(dāng)前系統(tǒng)的sdcard路徑。
判斷sdcard是否存在的方法是:if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
 
原文來自:tbkj
?