# Android (2021 summer) ###### tags: `rteslab` `SummerCourse` --- 一、環境建立: 1.Ubuntu14.04 (iso檔附於資料夾中) 2.安裝Android所需packages ``` sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip ``` 3.安裝OpenJDK第七版 ``` sudo apt-get install openjdk-7-jdk ``` :::spoiler https://medium.com/@rachmawidya7/9-1-shared-preferences-cf89298e2542 ::: 二、編譯Android說明: R20.tar.gz解壓後會在P100_R20資料夾下 ``` chmod -R 777 P100_R20 cd P100_R20 source build/envsetup.sh lunch aosp_blaze_tablet-userdebug make -j8 ``` 需等待幾個小時才會打包好 結束後在P100_R20/out/target/product/blaze_tablet/資料夾下將boot.img, system.img與userdata.img擷取覆蓋到BSP/WinTool/image資料夾下 (其餘img不用更新) 三、燒錄image: 1.先將上述WinTool資料夾複製到Windows作業系統(如D:\) 2.眼鏡開機到Android環境下並連接電腦 3.在Windows環境下執行D:\WinTool資料夾下的flashimg.bat開始燒錄image 4.燒錄過程中請勿關機或是斷電 5.燒錄過程耗時約1分40秒,結束後按任意鍵繼續 ![](https://i.imgur.com/k05ZDIr.png) https://developer.android.com/studio/run/win-usb --- 三、燒錄image_20210714: 1. 先將上述WinTool資料夾複製到Windows作業系統 2. 眼鏡開機到Android環境下並連接電腦 3. 使用powershell或其他command line介面,輸入`./adb devices`確認adb能抓到裝置 >截圖: >![](https://i.imgur.com/NhtgF7T.png) >若抓不到時,建議安裝google官方提供的 USB driver: >https://developer.android.com/studio/run/win-usb >![](https://i.imgur.com/mSYWwhz.png) >![](https://i.imgur.com/6OUZdAE.png) >![](https://i.imgur.com/esnYHa1.png) >![](https://i.imgur.com/AOLySLw.png) 4. 輸入`./adb reboot bootloader`進入bootloader mode (fastboot mode),此時眼鏡會重開 5. 輸入`./fastboot devices`確認能抓到裝置進入fastboot mode >截圖: >![](https://i.imgur.com/6WiIIV5.png) >如果不小心進入recovery mode會變這樣: >![](https://i.imgur.com/Yz1Ah6H.png) >fastboot device 沒反應但 adb device 有 >最初的`press camera button to enter recovery mode`畫面就是在fastboot mode了,按下 camera button 後會進入 recovery mode 而不是 fastboot mode 6. 輸入以下指令以進行燒錄: ``` ./fastboot flash boot "image\boot.img" ./fastboot flash userdata "image\userdata.img" ./fastboot flash system "image\system.img" ``` 畫面應該會花屏掉 7.輸入`./fastboot reboot`重新開機 8.確認能正常進入桌面,畫面應出現以下訊息 ![](https://i.imgur.com/5Qb74Dy.png) 筆記: 開機時按住音量`-`號會進safe mode 開機時按住音量`+`號會進recovery mode 可從recovery mode進入fastboot mode 選單選擇`reboot to bootloader` ![](https://i.imgur.com/sCidh1p.png) --- SharedPreferences object ``` private SharedPreferences mPreferences; private String sharedPrefFile = "com.example.android.hellosharedprefs"; ``` onCreate ``` mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); mCount = mPreferences.getInt(COUNT_KEY, 0); mShowCountTextView.setText(String.format("%s", mCount)); mColor = mPreferences.getInt(COLOR_KEY, mColor); mShowCountTextView.setBackgroundColor(mColor); ``` onPause ``` @Override protected void onPause(){ super.onPause(); preferencesEditor.putInt(COUNT_KEY, mCount); preferencesEditor.putInt(COLOR_KEY, mColor); preferencesEditor.apply(); } ``` reset ``` SharedPreferences.Editor preferencesEditor = mPreferences.edit(); preferencesEditor.clear(); preferencesEditor.apply(); ```