原创 Android rom開發:自定義序列號ro.serialno

本文基於Android 5.1版本SDK。 客戶需求:自定義sn,統一規則編號。 第一部分:背景知識 Android的sn由SystemProperties.get("ro.serialno", "");而來。 ro.serial

原创 Java讀寫文件通用代碼模板

private static final String BR_CLOSE_ERROR = "bufferedReader close error "; private static final String BW_CLOSE_ER

原创 Android rom開發:app運行異常,報libc: Fatal signal 11 (SIGSEGV) in tid xxx錯誤

最近遇到了app在設備上反覆掛掉的問題。log如下: 2020-03-07 13:20:24.814 16858-16858/? E/SharedPreferencesImpl: Couldn't create directory

原创 Android app開發:對findViewById的引用不明確

“錯誤: 對findViewById的引用不明確,Activity 中的方法 findViewById(int) 和 AppCompatActivity 中的方法 findViewById(int) 都匹配,其中, T是類型變量”

原创 Android rom開發:webview崩潰問題Binary XML file line #103: Error inflating class android.webkit.WebView

近期在項目上遇到了webview崩潰的問題,出現在app版本迭代之後。崩潰log如下: 05-26 13:58:52.961 7085-7085/com.printer.tool E/AndroidRuntime: FATAL E

原创 Android rom開發:5.1系統默認允許特定apk的全部權限

本文基於Android 5.1系統。 不廢話,直接貼代碼! diff --git a/frameworks/base/services/core/java/com/android/server/AppOpsService.java

原创 Android系統恢復出廠設置方法-涵蓋5.1 6.0 7.0 7.1 8.0 9.0

最近在8.0系統上面調試公司自主開發的setting,發現無法恢復出廠,原來在7.1 7.0 6.0 5.1上面使用的廣播已經沒有效果,查閱8.0的原生Settings源碼之後發現恢復出廠的代碼在8.0上面已經偷偷摸摸地換成了用另

原创 Android rom開發:長按Power鍵關機/重啓優化,告別長時間等待

最近在項目上碰到了這樣的問題:在某個apk界面長按power鍵來選擇關機或者重啓,apk會出現重啓現象,並且更加尷尬的是,在另外的方案上面對比後發現沒有問題,明明白白地顯示這是系統的鍋。 好吧,改!仔細研究關機/重啓的相關源

原创 Android rom開發:安裝帶so庫的apk後導致系統運行異常,提示其他apk stopped

項目上遇到了帶so庫的apk在安裝在盒子上之後,盒子起機經常出現系統運行異常的現象,彈出許多個彈框提示xxx has stopped,如下圖: 幾經排查,確定是apk的so庫與系統裏面其他apk所使用的so庫位數不一致導致的,

原创 Android rom開發:監聽HDMI狀態能實現控制盒子的網絡?

新年好!本年度定一個小目標:筆耕不輟,每月至少更新一篇博客。 發車發車! ============================= 華麗麗的分割線 ============================= 2019年第一篇博

原创 Android rom開發:第三方app開放全部權限+支持靜默安裝卸載

開發平臺: 高通 android 7.1 需求: app不帶系統簽名,僅僅以反射的方式調用PackageManager類的installPackage、deletePackage方法,實現靜默安裝卸載。 背景知識: 常規情況下,

原创 Android rom開發:最完整的截屏方案(支持全屏截屏+區域截屏)

網上很多資料都是說使用View的getDrawingCache接口,這種方式有一個問題,無法截取到狀態欄,因此個人不推薦。 View view = getWindow().getDecorView().getRootView();

原创 Android rom開發:Settings隱藏某個選項

方法1: 直接在AndroidManifest.xml中屏蔽對應的activity 優點:無需改動java代碼,簡單粗暴 缺點:一刀切的做法,無法根據不同的條件靈活顯示或者隱藏 方法2: packages/apps/Setting

原创 Android rom開發:動態顯示隱藏底部導航欄,默認顯示3s後消失

時節如流,2019年快要結束了,立個flag,2020.1.1發佈2019年個人總結,今天先來一篇技術乾貨。 項目需求要求動態顯示/隱藏底部導航欄,默認顯示3s後消失。設備默認是橫屏顯示。 思路: PhoneWindowManag

原创 Android:SwitchPreference的相關知識

SwitchPreference是CheckBoxPreference的升級版,用於顯示兩種不同的狀態,繼承自TwoStatePreference。通常在系統自帶應用中使用,比如說Settings。 SwitchPreferenc