Monthly Archives: February 2018

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 搏鬥了…。