原创 Android TouchEvent處理機制
1,佈局結構: Activity→ViewGroup→View 2,TouchEvent觸發到的主要方法如下: 層級 用到的方法 Activity dispatchTouchEvent(MotionEvent ev
原创 裁減jar包
控制android app的體積,一直是開發者無法繞開的問題。尤其是當我們接入第三方sdk時,常常只是用到其中很少的功能,卻要接入完整的sdk,導致apk體積增大(如google的GMS,完整jar包有5.9MB,但通常a
原创 實用的Android開源工具(持續更新)
1,fresco GitHub: https://github.com/facebook/fresco fresco是來自Facebook的圖片處理工具, 與傳統的圖片緩存工具相比,其強大的內存管理特性一度被認爲是黑科技,使得它一經問世
原创 APK瘦身方案
一、圖片壓縮 1,使用tinypng對圖片進行有損壓縮 詳細資料見:https://tinypng.com/ 2,png換成jpg 不需要透明層的背景圖片、宣傳圖片等大圖使用jpg格式 3,圖片使用webp格式 android 4
原创 使用mount掛載system目錄爲讀寫權限
1,獲取system分區全名: 命令入下: adb shell mount | grep “system” 執行結果如下(當前權限爲ro,即read only): /dev/block/platform/sdhci-tegra
原创 常用排序算法
1. 冒泡排序 1.1 算法原理: S1:從待排序序列的起始位置開始,從前往後依次比較各個位置和其後一位置的大小並執行S2。 S2:如果當前位置的值大於其後一位置的值,就把他倆的值交換(完成一次全序列比較後,序列最後位置的值即此序列最
原创 單例模式的最佳實現(Java)
public class Singleton { /** * Private constructor prevents instantiation from other classes */ priv
原创 Android的各種零碎知識點(持續補充)
1,將EditText的光標放在尾部: editText.setSelection(editText.getText().length()); 2,使用SparseArray<E>替換HashMap<Integer,E>可以提升查找效率。
原创 從Message生產到消費的過程理解Handler消息機制
Handler消息機制用於實現同一進程的線程間通信,其本質就是在A線程生產Message,然後在B線程消費掉Message。 1,Message生產流程: Message的生產流程是指將Message加入到MessageQueue的消息隊
原创 Android APK打包流程
1,使用aapt編譯資源文件,生成R.java和編譯後的資源文件 2,處理aidl文件,生成對應Java文件 3,將上兩步生成的Java文件和項目源代碼一起編譯生成class文件 4,使用dex工具將第3步生成的class文件和引用
原创 android設備常用屏幕參數
level resolution densityDpi density fontScale ldpi 320*240 120 0.75 - mdpi 480*320 160 1.0 - hdpi 800*480 240
原创 常用查找算法
1. 順序查找 1.1 算法原理: 順序查找是在一個已知無(或有序)序隊列中找出與給定關鍵字相同的數的具體位置。原理是讓關鍵字與隊列中的數從第一個開始逐個比較,直到找出與給定關鍵字相同的數爲止,它的缺點是效率低下。 1.2 算法實現(
原创 ListView設置EmptyView
ListView以及其他繼承自AdapterView的類可以通過setEmptyView(View)方法很簡單地處理空狀態。當需要繪製AdapterView時,如果適配器爲null或者適配器的isEmpty()方法返回true,此時會顯示
原创 Android經典Exception彙總
1,android.view.WindowManager$BadTokenException: Unable to add window — token android.os.BinderProxy@447a6748 is not val
原创 自定義Dialog
1,自定義style:res/values/style.xml <style name="customDialog" parent="android:style/Theme.Dialog"> <item name="andro