原创 如何判斷藍牙設備類型

我們在開發Android的藍牙應用時,可能需要知道掃描到的藍牙設備是什麼類型,然後過濾掉不符合要求的設備,只保留符合要求的設備,例如我們在車載系統上開發藍牙電話應用時,我們希望只顯示手機藍牙設備,那麼如何從搜索到的藍牙設備中選擇出手機藍牙

原创 make update-api 的由來

     谷歌對於所有的類和API,分爲開放和非開放兩種,當我們修改framework目錄中的java文件時,比如添加API、刪除API、聲明變量,編譯器都需要我們決定API是開放還是非開放。      對於開放的類和API,可以通過“J

原创 liunx下文件的切分與合併

【使用場景】 當我們需要將大文件/文件夾拷貝給其他人時(例如:安卓系統源碼),首先我們需要將文件進行壓縮,這樣拷貝速度纔會快,那麼問題來了,如果壓縮成單個文件,可能就無法用U盤作爲介質進行拷貝,因爲 U盤對於單個文件的大小有限制,所以這時

原创 Activity生命週期(二)理解這些,你就對生命週期入門了

有兩個界面分別爲AActivity、BActivity,執行以下操作後,分析AActivity的生命週期怎樣變化? 1.啓動AActivity -> 啓動BActivity -> finish掉 BActivity   1) AActiv

原创 Activity生命週期(一)經典面試題

問題: 當前棧頂活動爲A,此時再啓動一個活動A,那麼活動A會經歷那些生命週期的變化?   答案: 對於這題,暫且稱已經啓動的活動A爲“1號A活動”,未啓動的稱爲“2號A活動”。 那麼此時經歷的生命週期分兩種情況的: 1、A活動的啓動模式爲

原创 從雙聲道轉單聲道看語言/算法性能差異

目錄 一、使用場景 二、算法 1. Java-數組遍歷 2. c/c++ -索引遍歷 3. c/c++ -指針遍歷 三、數據說話 四、總結 一、使用場景     我們都知道不同的語言有不同的特性,所以在比較某一特性時,不同的語言會表現出差

原创 解決JavaBean轉換成JSON字符串時ANR的問題

目錄 一、問題描述 二、問題復現 1. 新建JavaBean 2. JavaBen轉 JSONString 3. Android Studio的logcat打印的錯誤信息(使用不同版本的json轉換框架,結果不一致) 三、解決方案 一、問

原创 ArrayList數組深度拷貝

目錄 1.創建JavaBean,切記一定要序列化 2.編寫深度拷貝方法 3.編寫測試方法 1.創建JavaBean,切記一定要序列化 /** * Desc: 測試Bean * Created by Jack on 2020/5/15

原创 編譯so庫時提示 cannot find -llog

目錄 一、問題復現 二、解決方案   一、問題復現      自己編寫的jni代碼中用到了打印Android log的方法,並且在Android.mk文件中引入了log庫,但是編譯時報錯(注:如果時Android系統已經全量編譯過一次後,

原创 修改系統分辨率的三大方法

1.adb修改方法 adb shell wm size 800x480   2.修改frameworks層代碼 文件路徑:\frameworks\base\services\java\com\android\server\SystemSe

原创 聲明與定義的區別

  1.變量的聲明與定義 總的原則:聲明不分配存儲空間,定義纔會分配存儲空間   舉個栗子: extern int a; //聲明 int a;            //定義 int a = 10;  //

原创 adb命令大全

目錄   1.啓動Activity 2.發送廣播 3.查看dumpsys信息 4.查看系統屬性值 1.啓動Activity adb shell am start <packageName>/<Activity path name> eg:

原创 如何閱讀源碼

閱讀源碼的步驟: 1.瞭解庫/框架有哪些功能 (解決什麼問題?) 2.能夠使用庫/框架的簡單功能(怎樣使用基本功能?) 3.瞭解代碼的設計思想/抽離核心/實現簡潔版(假如讓你設計,你會怎樣做?) 4.發現不足/優化框架(有何優點?有何缺點

原创 經驗雜談(一) 爲什麼發佈新版本要編寫提測郵件和回覆提測郵件?

1.爲什麼研發人員發佈軟件版本要編寫提測郵件?     沒有郵件,測試人員無法追溯每個版本的變更信息,也就無法評估測試工作量,執行時也帶有盲目性,降低了測試效率     1)有了變更信息,測試人員可以評估這個版本的測試工作量;     2

原创 Android系統Q&A

目錄 1.禁止掉插拔電源時的系統彈框 2.默認支持GPS+北斗 3.隨機生成藍牙地址 4.設置系統默認語言 1.禁止掉插拔電源時的系統彈框 路徑:frameworks\base\packages\SystemUI\src\com\andr