2023年5月29日 星期一

Android — Gralde Plugin 4.0.0的功能 buildFeatures

 2023/05時試驗android時,產生了BuildConfig,binding物件找不到的錯誤,經查詢資料及實作,可用以下方式克服(如:cannot resolve symbol 'BuildConfig')

方式一:在build.gradle(Module:app)檔案加入以下選項:

android {
//.....
buildFeatures {
viewBinding true //建立View Binding物件取代findViewById()
buildConfig true //建立BuildConfig須加這設定
// dataBinding true //過期了目前併入viewBinding
aidl true //AIDL檔案,產生Binder class
renderScript true //決定是否支援renderScript
resValues true //決定注入客製變數是否進入R.java
shaders true //決定支援 shade AOT compilation
}

}
即使做了以上檔案修改,project設定不一定會自動生效:你最好做以下動作:
1.build.gradle----->Sync Now
2,選取android studio開發工具:
  File----->Invalide Caches----->勾選"clear Files","clear VCS"及"Delete embedded browser"
  最後按下"Invalidate and Restart" 按鈕
3.再選取android studio開發工具:
   Build------>clean Project 
4.最後再選取android studio開發工具:
    Build------>rebuild Project 
方式二:在gradle.properties檔案加入以下選項: (這是用在你不止一個模組時的起始設定)
android.defaults.buildfeatures.buildconfig=true
android.defaults.buildfeatures.aidl=true
android.defaults.buildfeatures.renderscript=true
android.defaults.buildfeatures.resvalues=true
android.defaults.buildfeatures.shaders=true
參考的官方網址(目前):
   https://developer.android.com/studio/releases/gradle-plugin?hl=zh-tw#buildFeatures 

2023年5月6日 星期六

android adb 使用規則:(version:2023/05/05)

 android adb 使用規則:

adb devices或 adb devices -l作用列出所有正在執行的虛擬機
  但早期如你要連虛擬機是執行以下文法:
  adb connect 虛擬機名:5555
  範例:
  adb connect emulator-5555:5555
  往往你用genymotion,bluestack等android模擬器都這樣做
  目前如你要使用 android studio開發工具附帶的模擬器連線需使用
  localhost
  指令如下:
  adb connect localhost:5555
  adb connect 127.0.0.1:5555
google官方虛擬機有兩個版本:
     google play及google api版
     但google play版沒開放root權限
 
要操作虛擬機須進入 虛擬機shell command mode
指令如下:
 adb -s 127.0.0.1:5555 shell
 但以上指令有時並不是以root權限執行,
 如要以root 權限執行(有時可執行)
 adb -s 127.0.0.1:5555 shell root    

linux 不確定目錄在哪可下pwd指令:
ls list列出目前目錄的全部

早期 adb一旦連線就只需針對特定機器動作
但目前adb指令即使只有一台模擬器也需使用  -s 參數指定模擬器,規則如下:
adb -s 模擬器名:port
window 目錄用 "\",有磁碟概念
unix-like 目錄用 "/",沒有磁碟概念

目前adb指令新增了root 參數,可讓adb操作重新啟動在root權限下
 範例如下:adb -s 127.0.0.1;5555 root
 
adb -s 模擬器名:port pull <要取檔案或目錄> [<放到哪個路徑>]: 拉檔案或目錄出來
  範例:
  adb -s 127.0.0.1:5555  pull /data/data/com.example.sharepreferences/shared_prefs/PREF_LOGIN.xml e:\kotlin
  要取檔案或目錄 /data/data/com.example.sharepreferences/shared_prefs/PREF_LOGIN.xml
  放到哪個路徑 e:\kotlin
adb -s 模擬器名:port push <檔案或目錄> <推到哪個路徑>: 推檔案或目錄進去

adb install <apk>: 安裝 apk,當已經安裝過舊版本的程式時,可以使用 -r 去覆蓋。

2023/05/05紀錄 database inspect改版放在 app inspecte功能下,如何進入選 android studio 的view功能再選Tool window下就有app inspect

sqlite3  執行在 adb 連線狀態下,因權限限制必須abd先限特定模擬主機,再於 android linux terminal mode下
   執行下列文法:
    sqlite3 /目錄/目標.db
   範例:
    sqlite3 /data/data/com.example.app/databases/rssitems.db 

參照官網:https://developer.android.com/studio/command-line/adb?hl=zh-tw