Android KTX,Google 官方對 Kotlin 在 Android 底下更簡潔易用的包裝

幾天前的公告:[Android Developers Blog: Introducing Android KTX: Even Sweeter Kotlin Development for Android]

一卡車的人都在說 Kotlin 是 Android 底下的 Swift,不過我覺得這句話應該是直到 Android KTX 這個「增補套件」出現之後才算比較中肯些,讓 Kotlin 在 Android 底下的程式寫起來更精簡、更不囉唆。

也因為看到這東西出現,讓我眼睛為之一亮,沉睡好久好久的 Android App 開發魂又甦醒過來。

除了官方公告列的幾個範例,還可以參考 [Exploring KTX for Android – Exploring Android – Medium] 這篇,挖出了更多目前 Android KTX 能夠做到更方便的事。

當然這套東西還在很早期的階段,不過我想假以時日,它肯定會被扶正。

Android Studio 下管理原始碼授權條款的方法

我打算把我 Android 專案中的「主要、原創」程式原始碼都宣告為採用 GPLv3 授權,所以:

  1. [File] -> [Settings] -> [Editor] -> [Copyright] -> [Copyright Profiles] 新增一組名為 GPLv3 的 profile,Copyright text 當然就複製自 GPLv3,再自己簽署一下後存檔。這邊有個地方要記得,就是 Default project copyright 要維持 “No copyright”,不然 Android Studio 自動生成的有些檔案,像是 SVG 格式的圖示,我覺得授權上有些灰色地帶,如果不小心無差別都套上了 GPLv3,應該會成為潛在地雷與日後的相罵本…。
  2. [File] -> [Settings] -> [Appearance & Behavior] -> [Scopes] 新增一組名為 Codes 的 scope,針對 Project 遞迴選擇 (Include Recursively) “src/androidTest/java”, “src/main/java”, “src/main/res/values”, “src/main/res/xml”, “src/test/java” 底下的檔案。
  3. [File] -> [Settings] -> [Editor] -> [Copyright] 針對 Codes scope 套用 GPLv3 copyright (應該說是 copyleft 比較正確?)
  4. [Code] -> [Update Copyright] 套用授權。

Android emulator 遇到 libGL error: unable to load driver: i965_dri.so 錯誤的處理方法

在 Arch Linux 底下遇到太多次,神煩,今天索性找出雖不是終極、但至少是中級不低級的解。

主因其實是 Android emulator 與系統裡的 libstdc++ 版本打架,解法參考 [Start the Emulator from the Command Line | Android Studio] 有二:

  • 用 command line 啟動 emulator,後面補上 ‘-use-system-libs’ 參數
  • 設定環境變數 ‘ANDROID_EMULATOR_USE_SYSTEM_LIBS=1’

第二種方法比較不反人類,不過還是要記得放對地方,如果從 desktop environment 啟動 Android Studio,這個時候吃的環境變數設定是從 ~/.xprofile 這邊載入(假設圖形環境使用的是 X Window System),如果是從 terminal 下的 command line 啟動,就是 ~/.zshrc 之類。

搞定之後就不用跟 command line 搏鬥了…。

Lamp LP-740 懷爐惡搞心得

這篇是爬了 Mobile01 某棟懷爐耐久賽大樓後,自己也買了兩組回來使用&惡搞的心得:

  1. 千萬不要用酒精(乙醇),不然氣味不只是酒味而已,可能還會有醋酸菌發酵產生的酸臭味!國中理化其實就有講過,酒在空氣中放久了就會變成醋。
  2. 酒精含的水分會留在內膽棉花裡,很麻煩,我最後只好把棉花挖出來用微波爐烘乾。
  3. 使用酒精造成白金觸媒損害也是真的,不過主因是懷爐因為酒精揮發性低,遠比環保去漬油難點著,所以打火機在火口上烘烤的時間也變長,造成燃燒不全的黑色積碳,變相讓觸媒折壽。
  4. 那些耐久測試數據,我覺得是這樣啦,實驗組、對照組、控制變因沒幾個交代清楚,今天突破幾小時,明天又突然降到剩幾小時的,還是看看就好。
  5. 把油氣揮發口徑改小,「不見得」就會延長懷爐工作時間,但是「某種程度上」會改善油氣揮發的嗆鼻味。懷爐工作時間取決於「火口效能」、「供氧量」與「供油氣量」,其中給的氧氣多,導致燃燒的作用快,就會縮短工作時間,今天你改了油氣揮發口徑得到很漂亮的工作時間數據,明天卻不盡然如此,就是因為你的實驗沒有控制「供氧量」這個因素,而實務上你會把懷爐拿去各種不同場合使用,「供氧量」會不斷變化,所以…。
  6. 把可能有漏氣的地方補起來,「某種程度上」會改善油氣揮發的嗆鼻味,這點也是對的,但是能否延長懷爐工作時間?根據前項,我還是覺得這無從斬釘截鐵地認定,但是理論上來說,減少油氣從不該揮發的地方揮發掉,就能相對增加能源利用效率,這點我是可以肯定的。
  7. 承上,我主要是補上爐體側邊兩處那有點大的縫,曾經用過鋁箔膠帶,但是太厚,會導致上蓋蓋不上。接著用美工材料「超輕土」也不是很順利。最後想到了「石膏」這種耐熱材料,在文具店買一包只要 13 元,調一點石膏漿,用水彩筆輕輕抹上去,等它乾燥後,就補得很密合了。順道一提,石膏在油漆行也有賣,雖然油漆工程用的與美術用的石膏成份不太一樣,不過在這個只是填補縫隙的場合,應該都適用。
  8. 我沒有用過那棟大樓提的一些舶來品與外國品牌懷爐,所以無從比較,不過 Lamp 真的如某些人揶揄的那麼不堪嗎?我也不覺得,主要是它的加油口設計就是可以讓你很順手的延長懷爐工作時間,而且我這幾次試用,它再怎麼不濟,都能有四小時,如果在你活動範圍內,油料添加對你不是問題,那買 Lamp 來用就是經濟實惠的選擇。

修好了觸控面板故障的 NDSL

原本買這台 NDSL 是想要嘗試在上面寫個遊戲,沒想到買回來後,用清潔海綿把污垢清潔過一遍,先還原它該有的整潔模樣,再開機測試,便發現觸控面板失靈。除了極左側的觸控還算準確,此外其他地方都向左偏移了約一公分。

經驗告訴我,這種電阻式觸控面板出現這樣的問題,就是長期下來的內傷,只能換一片新的觸控面板了事。事前的功課還是要做的,其中我覺得這個 YouTube 上的影片教學 [Nintendo DS lite Repair – Touchscreen Replacement | Memories in 8Bit] 很不錯。

雖然電阻式觸控面板在這個時代已經顯得有點落伍,但是好處也就是它夠落伍,與液晶顯示面板「各自為政」,不像現在主流的電容式觸控面板用貼合技術緊密整合成一塊面板,而是用雙面膠與液晶顯示面板黏在一起而已,所以維修的技術力還在我能負擔的程度。

不過,在網拍上買了維修料件後,在東西收到前,還是一直很煩惱,因為那雙面膠如果要用人工撕下、移植到新的觸控面板,其實還是很難做得完美無暇。好在最後確認新的觸控面板原本就附上了雙面膠,這個阿雜的問題就不是問題了。

過程中,最麻煩的就是那個觸控面板的軟板連接器,肉眼看過去真的很小,要把它摳起,單用指甲摳不起來,用刀片如果使力過猛,又容易整塊弄毀,如果沒有事前做過功課,把這個地方弄壞,那就慘了。處理這邊一定要非常注意自己的力道與勁道,甚至可以說,只要把這邊處理好,其他地方全然都不是難事。

換上新的觸控面板後,這台又可以正常服役了。只是我拿了幾個網上的 homebrew 遊戲作品,才知道 R4 這種燒錄卡要處理載入程式的相容性,可說是見招拆招,如果它的「內核」沒有特別處理到某個程式的特殊行為,就無法正常執行。

若不是為了「在實機上運作」這種無謂的虛榮,還不如用模擬器,理應可以少掉很多這種相容性的毛邊要處理。(爆)