- 創建項目前,window-》performance-》workSpace 將編碼改成UTF_8
- 安卓系統提供了一個SparseArray,它本質是一個map,但是存儲的key只能是int類型,它相比普通的map效率更高,所以當我們需要存儲int類型的map的時候,可以使用SparseArray
- isOrderedBroadcastReceiver()判斷是有序廣播還是無序廣播
- BigDecimal是一個提供了精確的計算的類,如果在跟數值計算打交道的時候遇到問題可以考慮這個類
- 圖片的scaleType設置爲fitXTY則自動拉伸鋪滿容器,設置爲centerCrop則等比例放大直到最小的邊滿足後切割。
- RatingBar 有一個屬性是Android:isIndicator = “true”,如果設置爲TRUE則只是一個顯示的不能進行點擊修改。
- 安卓系統佔用物理內存大小的格式化
Formatter.fromatFileSize(context, size);
-
強引用,任何時候都不會被;垃圾回收器回收,如果內存不足,寧願拋出OutOfMemoryError
軟引用,只有在內存將滿的時候纔會被垃圾回收器回收,如果還有可用內存,垃圾回收器不會回收
弱引用,只要垃圾回收器運行,就肯定會被回收,不管還有沒有可用內存。
虛引用,虛引用等於沒有引用,任何時候都有可能被垃圾回收。
-
獲取圖片真實高度大小:圖片的drawable對象 drawable.getIntrinsicHeight();
-
LruCache使用
-
bitmap.compress(arg0, arg1, arg2);壓縮圖片,第一個參數是壓縮後圖片的類型png,jpg等,第二個是壓縮比例,100的話表示不壓縮,第三個參數是輸出流
-
canvas繪製文字起點是文字左下角。paint.setTextAlign( )可以修改繪製文字的起點
-
兩個viewpager嵌套的時候裏層的viewpager默認是不能滑動的,因爲父類默認會攔截子類控件的透徹事件
所以需要在父類中重寫onInterceptTouchEvent()方法,返回false表示不攔截子類的touch事件,或者在子類中 重寫dispatchTouchEvent()方法,在方法中加上一句getParent().requestDisallowInterceptTouchEvent(true);這句話的意思是將父類不允許攔截子類touch事件的屬性設置爲true,(事件的分發機制:dispatchTouchEvent->onInterceptTouchEvent->onTouchEvent) - viewHolder之所以要聲明成靜態的是因爲,非靜態的內部類擁有外部類的強引用,是防止內存泄露的一種方式
- popupwindow需要設置上背景(view上有的話可以設置透明背景),點擊返回纔會有響應
- baseActivity中一般用context = getApplicationContext()取得上下文環境,不用this的原因是防止內存泄漏
- Target SDK,一般設置爲目前市場佔有率最高的版本,兼容性問題小
- compile with:一般選擇較高的版本,因爲隨着安卓的發展,會添加很多新的API,編譯版本高可以通過,如果設置的較低的話,則編譯無法通過。
- 如何限制一個方法併發訪問的線程數
static Semaphore semaphore = new Semaphore(6);
然後在一個線程開始的時候調用semaphore.acquire();
在線程結束的時候調用semaphore.release();
- 版本號1.0.0:最後一位表示修復上一版本的bug,第二位表示更新了部分功能,第一位表示項目重大更新(代碼重構,界面整體修改,很多功能添加)
- 文字陰影效果:shadowX=“1” 設置顏色 shadowColor=“#FF0000” 最後要設置shadowradius="1"控制陰影範圍
- 手機模擬器訪問10.0.2.2就是模擬器所在電腦的ip地址。是安卓工程師故意留給我們的固定ip地址
- 直接使用系統自帶的theme去掉頁面的title的話會導致其他UI很醜,所以我們一般不用系統自帶的theme而是在默認的theme中添加<item name="android:windowNoTitle">true</item>
- activity的切換動畫(100%p:就是整個屏幕寬度)
- 跑馬燈效果
- gridview的佈局文件
-
開發過程中可以在values文件夾下面新建一個color.xml設定所有的顏色值。
- 下載完成後自動安裝APP
protected void installApk(File file) {
//系統應用界面,源碼,安裝apk入口
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
/*//文件作爲數據源
intent.setData(Uri.fromFile(file));
//設置安裝的類型
intent.setType("application/vnd.android.package-archive");*/
intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");
startActivity(intent);
- 獲取APP版本名稱
PackageManager packageManager = getPackageManager();
try {
//0代表基本信息
PackageInfo packageInfo = packageManager.getPackageInfo(this.getPackageName(), 0);
String versionName = packageInfo.versionName;
String versionCode = packageInfo.versionCode;
}
catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
安卓零碎知識點
零碎知識點
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.