Android Weekly Notes Issue #236
Android Weekly Issue #236
本期內容包括: Google的物聯網平臺Android Things; FileProvider; Android Studio的Layout Preview使用; Retrofit2使用; Google Sign-In和SmartLock; 把敏感資訊放入NDK的解決方式.
設計部分討論了調色盤的靈感來源和幾個開發app的時候應該注意的問題.
ARTICLES & TUTORIALS
Internet of Things (物聯網, IoT), 是網際網路, 傳統電信網等諮詢承載體, 讓所有能行使獨立功能的物品之間實現互聯互通的網路.
2016年12月, Google釋出了Android Things的開發者預覽版, 這是一個專門為IoT裝置定製的Android系統.
本篇文章一步一步地教你如何寫一個IoT的基本程式, 跑在Raspberry Pi 3 Model B上.
上次我們提到了用DownloadManager
下載的東西可以和其他應用分享, 那麼如果我們下載的時候沒有用DownloadManager
呢?
比較常見的情況是我們的應用需要分享內容到其他應用, 或者是檔案的型別是我們應用不能自己處理的, 需要找一個支援這種檔案型別的其他應用來幫我們開啟它.
怎麼解決呢? 答案是用FileProvider
.
上一期有一篇文章也說過Android 7開始廢棄了"file://", 解決方案就是用FileProvider
Layout Preview向你展示了你的xml將如何在裝置上顯示. 你可以用它檢視佈局在不同的配置下如何顯示, 比如可以切換橫豎屏, 語言等等.
但是它同樣也有一些問題:
Issue #1: Preview顯示空白
當你的佈局是由動態獲取的資料來填充的, preview不知道如何填充, 所以你看到的是空白的.
一個好的practice是使用tools
名稱空間, 指定一些只在preview階段使用的屬性. 這樣你就可以指定一些text或src用來預覽.
Tip #2: 使得動態內容在Preview可見
如果你的圖片是動態資源, 你也可以設定一些最大寬高給parent view, 以防真實的圖片比期待的大太多或者是比例不對. 你可以設定tools:layout_height
tools:layout_width
, 還有tools:background
在preview中檢視view佔多大.
Tip #3: 修復壞掉的Previews
當你建立一個自定義View的時候, 你需要確保你的View不需要任何外部依賴即可被例項化, 否則Preview可能看不到你的View. 因為Preview不是執行在你的app上的, 它只是執行在IDE的JVM上, 所以View framework之外的東西它是訪問不到的.
解決辦法是在你的自定義View中做一些特殊處理, 比如把依賴注入放在!isInEditMode()
裡, 或者用tools:
名稱空間加一些預設值.
Tip #4:
解決的辦法是使用tools:showIn="layout"
, 指定
從Android Studio 2.2開始, 你可以使用tools:parentTag
來指定parent的型別, 比如tools:parentTag="LinearLayout"
.
Tip #5: 在Preview中顯示隱藏的View
如果你在layout中把view的visibility設定為gone, 那麼它是不會在Preview中顯示的.
解決辦法: 使用tools:visibility="visible"
.
Android Things教程.
本篇文章以例項講述如何使用Retrofit, 雖然都是基礎內容, 但講解很詳細.
Google提供了兩種方式來幫助我們改善使用者的登入體驗:
Google Sign-In(之前被稱為Google+ Sign-In)和SmartLock.
這篇文章舉例解釋了Google Sign-In和SmartLock的實現.
Google Sign-In的部分比較簡單.
SmartLock讓我們可以:
- 讓使用者儲存credentials.
- 在開啟應用的時候請求credentials.
- 使用存在Chrome上的credentials, 這樣我們的網站和app就可以共享credentials.
- 顯示Email提示, 讓使用者選擇email地址.
- 所有的這些資訊都儲存在Google的server裡, 使用者可以儲存或刪除.
這篇文章說敏感資訊放在Java程式碼裡不安全, 很容易被人反編譯查看出來, 如果放在NDK裡面就好一些, 你開啟檢視的只能是二進位制檔案, 很難找到.
DESIGN
作者從大自然的影象中得到顏色組合的靈感.
文章中舉了幾個例子, 如何用相關的照片找到相關主題的調色盤.
讓你的App看起來更好的幾點建議:
- 使用同一個圖示集的圖示.
(這裡推薦了一些圖片工具和網站.) - 使用Material Design設計的keylines, 使用固定的格子大小.
- 使用顏色的時候小心一些. (這裡推薦了一些調色盤網站)
- 選擇字型要明智一些.
LIBRARIES & CODE
模組化和可定製的Material Design UI元件. Android, iOS, Web.
Kickstarter開源了他們的Android應用.
一個kotlin寫的Android庫, 實現一種文字路徑的動畫.
包裝了Google Sign-In和SmartLock的Manager.
一個ePub閱讀器和解析框架.
對Support Library中的TextInputLayout
的擴充套件, 增加了字數統計.
使用Builder模式來配置建立一個Layout的屬性.