December 18th, 2016
Android Weekly Issue #236android
本期內容包括: Google的物聯網平臺Android Things; FileProvider; Android Studio的Layout Preview使用; Retrofit2使用; Google Sign-In和SmartLock; 把敏感信息放入NDK的解決方式.git
設計部分討論了調色板的靈感來源和幾個開發app的時候應該注意的問題.github
Internet of Things (物聯網, IoT), 是互聯網, 傳統電信網等諮詢承載體, 讓全部能行使獨立功能的物品之間實現互聯互通的網絡.安全
2016年12月, Google發佈了Android Things的開發者預覽版, 這是一個專門爲IoT設備定製的Android系統.網絡
本篇文章一步一步地教你如何寫一個IoT的基本程序, 跑在Raspberry Pi 3 Model B上.app
上次咱們提到了用DownloadManager
下載的東西能夠和其餘應用分享, 那麼若是咱們下載的時候沒有用DownloadManager
呢?框架
比較常見的狀況是咱們的應用須要分享內容到其餘應用, 或者是文件的類型是咱們應用不能本身處理的, 須要找一個支持這種文件類型的其餘應用來幫咱們打開它.less
怎麼解決呢? 答案是用FileProvider
.ide
上一期有一篇文章也說過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佔多大.
本文還推薦了另外一個閱讀資料: Tools of the trade — Part 1
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讓咱們能夠:
Demo app: charbgr/AuthManager
這篇文章說敏感信息放在Java代碼裏不安全, 很容易被人反編譯查看出來, 若是放在NDK裏面就好一些, 你打開查看的只能是二進制文件, 很難找到.
做者從大天然的圖像中獲得顏色組合的靈感.
文章中舉了幾個例子, 如何用相關的照片找到相關主題的調色板.
另推薦一個網站: IN COLOR
BALANCE
讓你的App看起來更好的幾點建議:
模塊化和可定製的Material Design UI組件. Android, iOS, Web.
Kickstarter開源了他們的Android應用.
一個kotlin寫的Android庫, 實現一種文字路徑的動畫.
包裝了Google Sign-In和SmartLock的Manager.
一個ePub閱讀器和解析框架.
對Support Library中的TextInputLayout
的擴展, 增長了字數統計.
使用Builder模式來配置建立一個Layout的屬性.