發表文章

Android background thread

在Android上使用Handler預設為Main Thread (UI Thread)工作 但在執行耗時工作時有可能會造成ANR 因此可以改用HandlerThread在背景執行工作,避免UI Thread塞車 -- private HandlerThread mBGThread; private Handler mHandler; mBGThread = new HandlerThread("BackgroundThread"); mBGThread.start(); mHandler = new Handler (mBGThread.getLooper()) {        @Override          public void handleMessae(@NunNull Message msg) {super.handleMessage(msg); }  }; 此時mHandler即在Background thread工作 以下可判斷是否在Main thread boolean isMainThread = (Thread.currentThread() == Looper.getMainLooper().getThread()); 結束Background thread時 mBGThread.quit();

解決Android Studio編譯失敗問題

圖片
從客戶取得的Demo Project因為與本地的編譯環境版本不同,所以經常遇到編譯失敗 ※Import project後 問題1. Unrecognized Android Studio (or Android Support plugin for IntelliJ IDEA) version '202.7660.26.42.7486908', please retry with version 2021.1.1 or newer. Sol.: build.gradle(Project)降低Android Gradle Plugin Version,跟本地端一樣的版本再Sync ※Rebuild Project後 問題2. lambda expressions are not supported in -source 7(use -source 8 or higher to enable lambda expressions) 或是另一種, Invoke-customs are only supported starting with Android O (--min-api 26). The Dependency contains Java 8 Bytecode Sol.: build.gradle(Module)加入compileOptions&kotlinOptions 問題3. NDK at F:\Android\Sdk\ndk-bundle did not have a source.properties file Sol.: build.gradle(Module)加入本地端NDK版本,因為我的NDK版本路徑是自建的,預設要看local.properties,或是Tools> SDK Manager> SDK Tools> Android SDK Location Android/Sdk/ndk/目錄下會顯示本地端已安裝的ndk版本 最後再Rebuild Project就完成了

小畫家製作圖片馬賽克

圖片
有時候圖片或照片上有隱私訊息不想被別人看見 可以利用小畫家做局部馬賽克效果 下面用Google首頁做範例 ※方法一 1. 先將要馬賽克的部分框起來 2. 將圖片縮小 3. 再將圖片拉大就完成啦 ※方法二 1. 同方法一步驟1,將預馬賽克範圍框起來 2. 點調整大小,或按快捷鍵Ctrl + w 3. 調整水平從100 → 10 → 500 → 200 

Google Chrome預設開啟無痕視窗

圖片
工作都會配發公用筆電 自己龜毛的個性,覺得不是私人筆電就不想留下太多紀錄 於是習慣公用筆電開瀏覽器都會用無痕視窗 雖然前陣子知道其實無痕也沒什麼用啦XD 方法很簡單 在Google Chrome捷徑上按滑鼠右鍵> 內容 在目標路徑最後面新增" --incognito" --前面要保留一個空格,如下圖所示   然後按下確定就可以囉! 參考來源: https://qaz33326.pixnet.net/blog/post/3722674

ADB Shell如何寫批次檔(.bat)

開發Android App經常會需要去系統裡撈檔案下來 Android Studio內有Device File Explorer,透過滑鼠點一點就直接下載 或著用Terminal輸入ADB指令 但請DQA幫忙時,他們工作內容不需要安裝Android Studio,只要裝ADB就可以了 可是ADB指令對DQA來說不像RD那麼熟悉 為了讓他們快速達到目的,趁機會google學習寫批次檔的方法,這樣對自己來說也方便。 /*以上前言...*/ 批次檔是一連串的指令集,將命令提示字元中輸入的指令集結寫成文字檔 用來批次執行,即為批次檔(Batch file),副檔名為.bat 撰寫批次檔可以先用記事本(.txt)製作,完成後再修改副檔名即可 Winodws環境下,滑鼠點兩下批次檔,即自動執行 -- ※流程 1. 開啟記事本(.txt) 2. 輸入要執行的adb shell指令集 例如: adb shell "mount -o rw,remount /system" adb shell "mv /sdcard/test1.txt /sdcard/test2.txt" adb pull /sdcard/test2.txt 進入shell的指令要用""包起來,外部指令不需要 3. 存檔,並將附檔名.txt改成.bat就完成啦!! -- 如果要註解,開頭可以輸入關鍵字"::"或"REM",例如: :: 這是註解 REM 這也是註解 若要顯示訊息在視窗上,關鍵字為"echo",後面再輸入要顯示的訊息,例如: echo Hello world 如果要隱藏該行命令,關鍵字為"@",例如: @echo Hello world 此時視窗只會顯示Hello world 但每一行都要打@會很麻煩,因此可以在開頭輸入"@echo off",就可以隱藏該行以下的所有命令,如果要顯示,則輸入"@echo on"即可。 參考來源: https://poychang.github.io/note-batch/ https://gn00982591....

Excel建立日期選擇器(Microsoft Date and Time Picker Control)

圖片
從Excel 2010開始 移除Date and Time Picker Control這個ActiveX控制項 需要手動註冊,步驟如下: 1. 下載 MSCOMCT2.cab 2. 解壓縮檔案,將MSCOMCT2.OCX複製到 "C:\Windows\SysWOW64" 3. 在上述資料夾路徑網址列輸入cmd後按Enter,即會跳出命令提示字元視窗並自動定位到該資料夾路徑下 4. 輸入 regsvr32 MSCOMCT2.OCX後按Enter,註冊成功後重啟電腦 5. 開啟Excel 2010,若功能區索引標籤名稱沒顯示「開發人員」的話,從檔案> 選項> 自訂功能區> 將開發人員選項打勾 6. 從功能區索引標籤> 開發人員> 插入> ActiveX控制項> 其他控制項> 選取Microsoft Date and Time Control 7. 之後就可以在Excel表格上繪製日期選擇器啦 參考來源:  https://answers.microsoft.com/zh-hant/msoffice/forum/msoffice_excel-mso_winother-mso_o365b/excel%E6%8E%A7%E5%88%B6%E9%A0%85/e42b6e4e-8207-4604-ad8b-f61dccc10c9b

No pain, no gain!

很久沒有寫Blog了... 上週換了新工作,處處是挑戰 主管告訴我 如果我的能力只有五分,那就要做七~八分的事情 比自己原本的能力再多一點,才會有所進步 但我現在只有三分,卻要做九分的事情啊啊啊... 既然之,則安之 加緊腳步,努力跟上大家的步伐吧! 這裡主要是記錄過去以及現在曾經面臨到的工作問題 希望對自己以及正在面對的你們,有所幫助