概念
Build Variants
AAB(Android App Bundle):Android App Bundle是一種發布格式,它允許Google Play動態地為用戶的設備生成和提供優化的APK。AAB包含了應用的所有代碼和資源,但Google Play會根據用戶的設備配置(如屏幕尺寸、分辨率和語言)來生成和分發最合適的APK。因此,“devAab”可能指的是為開發或測試目的而創建的Android App Bundle版本
APK(Android Package):APK是Android應用的標準發布格式,包含了應用的代碼、資源和必要的元數據。在Android開發中,通常會為不同的環境(如debug和release)創建不同的APK版本?!癲evApk”可能指的是為開發或測試目的而創建的APK版本
devAab
文件格式:AAB(Android App Bundle)是一種新的發布格式
使用場景:AAB文件主要用于在Google Play發布應用。它包含了應用的所有資源和代碼,但不會直接被用戶安裝,而是由Google Play在用戶下載時根據設備的配置動態生成APK
優點:使用AAB可以減少應用的下載和安裝包大小,提高安裝效率
devApk
文件格式:APK(Android Package)是傳統的應用安裝包格式
使用場景:APK文件可以直接安裝到設備上,適合開發階段的測試和分發
優點:APK文件可以方便地分享和安裝,適合于本地測試和非Play Store的分發
總結來說,devAab更適合用于發布和優化用戶體驗,而devApk則更適合于開發和測試階段
ABI
ABI,全稱為Application Binary Interface,即應用程序二進制接口。它定義了應用程序與操作系統之間進行交互的方式和規范,確保不同的軟件組件能夠正確地協同工作。ABI包括了函數調用約定、寄存器的使用、參數傳遞方式、系統調用接口等內容,為軟件開發者提供了一個穩定和一致的編程接口。
不同的硬件平臺和操作系統版本可能支持不同的ABI類型。例如,ARM架構的設備可能支持armeabi-v7a、arm64-v8a等ABI類型,而x86架構的設備則可能支持x86、x86_64等ABI類型
安卓各版本和API級別對應關系
Android各版本及API對應關系,持續更新! - 走看看
定位
Android手機app三種方法定位地址(自帶API,外接SDK,外網IP)
安卓智能手機gps定位算法在安卓系統下還是在芯片里? - 知乎
安卓和GMS
安卓和GMS 是什么關系?安卓和MIUI、Flyme、EMUI、ColorOS 等系統有什么關聯? - 知乎
UI
繪制流程
Android查看UI布局
layout、layout-land、layout-port
一般把UI 布局文件放在layout文件夾下,如果要支持橫屏,就會取同名的layout放在layout-land文件夾下
-res/layout 默認
-res/layout-land 橫屏
-res/layout-port 豎屏
layout-finger, layout-land-finger, finger使用在對手指觸摸支持很好的屏幕( finger-friendly touchscree)
Android視圖高度和陰影
https://juejin.cn/post/6844903465374744589
控件隱藏
Rect和RectF
Rect和RectF函數 - LoaderMan - 博客園
Path
onDraw()和dispatchDraw()
Android 更新視圖函數ondraw() 和dispatchdraw()的區別- 成步堂龍一
視圖陰影
Paint的setShadowLayer參數說明及使用 原創
Android Paint ShadowLayer 設置陰影效果
TextView自定義字體
Android 設置TextView的字體- 楓未晚- 簡書
工具
AutoValue
Android 使用AutoValue和Gson進行JSON序列化/反序列化
view.post()
LiveData
CSDN—Lifecycle、LiveData、ViewModel講解之LiveData
簡書—Jetpack(一)Lifecycle和LiveData
知乎—Android開發:官方推薦 Flow 取代 LiveData,真的有必要嗎?
AsyncTask
博客園—AsyncTask doinbackground onProgressUpdate onCancelled onPostExecute的基本使用
動態申請權限
Android studio (java) - Access storage permissions denied? - Stack Overflow
模擬器訪問外部存儲SDCard受限
Android studio:關于訪問模擬器本地文件遇到的幾個問題
1.手動打開app權限
Android Studio自帶模擬器讀SDcard失敗的解決方法
2.靜態申請權限
Android studio File Explorer sdcard文件怎么訪問
3.動態申請權限
Android studio (java) - Access storage permissions denied? - Stack Overflow
4.其他
https://www.likecs.com/show-923885.html#sc=273
android模擬器查看sd卡,android模擬器使用SD卡(1) - CSDN
Timber
OOM
java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Out of memory - 簡書
java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again - 空白的泡的博客
文件IO路徑
貌似Android能讀取的文件路徑位于模擬器中
讀取當前工作空間的路徑或者本地路徑都很困難
框架
Jetpack
MVC框架發展
Retrofit2
OkHttp
OkHttp 源碼分析系列(一)- Okhttp同步請求、異步請求過程- 瓊珶和予- 簡書
其他
混淆
Android開發實戰——代碼混淆解決方案,適配AndroidX - 金大人的夢- 博客園
Build.VERSION
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.....) - 博客園
AAB(Android App Bundle):Android App Bundle是一種發布格式,它允許Google Play動態地為用戶的設備生成和提供優化的APK。AAB包含了應用的所有代碼和資源,但Google Play會根據用戶的設備配置(如屏幕尺寸、分辨率和語言)來生成和分發最合適的APK。因此,“devAab”可能指的是為開發或測試目的而創建的Android App Bundle版本。
APK(Android Package):APK是Android應用的標準發布格式,包含了應用的代碼、資源和必要的元數據。在Android開發中,通常會為不同的環境(如debug和release)創建不同的APK版本?!癲evApk”可能指的是為開發或測試目的而創建的APK版本。