Android Weekly Notes Issue #236

Android Weekly Issue #236

December 18th, 2016
Android Weekly Issue #236android

本期內容包括: Google的物聯網平臺Android Things; FileProvider; Android Studio的Layout Preview使用; Retrofit2使用; Google Sign-In和SmartLock; 把敏感信息放入NDK的解決方式.git

設計部分討論了調色板的靈感來源和幾個開發app的時候應該注意的問題.github

ARTICLES & TUTORIALS

Getting started with Android Things

Internet of Things (物聯網, IoT), 是互聯網, 傳統電信網等諮詢承載體, 讓全部能行使獨立功能的物品之間實現互聯互通的網絡.安全

2016年12月, Google發佈了Android Things的開發者預覽版, 這是一個專門爲IoT設備定製的Android系統.網絡

本篇文章一步一步地教你如何寫一個IoT的基本程序, 跑在Raspberry Pi 3 Model B上.app

FileProvider

上次咱們提到了用DownloadManager下載的東西能夠和其餘應用分享, 那麼若是咱們下載的時候沒有用DownloadManager呢?框架

比較常見的狀況是咱們的應用須要分享內容到其餘應用, 或者是文件的類型是咱們應用不能本身處理的, 須要找一個支持這種文件類型的其餘應用來幫咱們打開它.less

怎麼解決呢? 答案是用FileProvider.ide

上一期有一篇文章也說過Android 7開始廢棄了"file://", 解決方案就是用FileProvider, 因此實現是同樣的, 這裏就不重複了.模塊化

Working with the Layout Preview

Layout Preview向你展現了你的xml將如何在設備上顯示. 你能夠用它查看佈局在不一樣的配置下如何顯示, 好比能夠切換橫豎屏, 語言等等.

可是它一樣也有一些問題:

Issue #1: Preview顯示空白
當你的佈局是由動態獲取的數據來填充的, preview不知道如何填充, 因此你看到的是空白的.

一個好的practice是使用tools命名空間, 指定一些只在preview階段使用的屬性. 這樣你就能夠指定一些text或src用來預覽.

Tip #2: 使得動態內容在Preview可見
若是你的圖片是動態資源, 你也能夠設置一些最大寬高給parent view, 以防真實的圖片比期待的大太多或者是比例不對. 你能夠設置tools:layout_heighttools: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: 佈局沒有被渲染
裏面的控件在preview裏會被重疊在一塊兒.
解決的辦法是使用 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 Tutorials

Android Things教程.

Get Started With Retrofit 2 HTTP Client

本篇文章以實例講述如何使用Retrofit, 雖然都是基礎內容, 但講解很詳細.

Improving sign-in experience with Google Sign-In and SmartLock

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裏, 用戶能夠保存或刪除.

Demo app: charbgr/AuthManager

Storing your secure information in the NDK

這篇文章說敏感信息放在Java代碼裏不安全, 很容易被人反編譯查看出來, 若是放在NDK裏面就好一些, 你打開查看的只能是二進制文件, 很難找到.

DESIGN

Introduction to Natural palettes

做者從大天然的圖像中獲得顏色組合的靈感.
文章中舉了幾個例子, 如何用相關的照片找到相關主題的調色板.

另推薦一個網站: IN COLOR
BALANCE

Make your Android app look better

讓你的App看起來更好的幾點建議:

  • 使用同一個圖標集的圖標.
    (這裏推薦了一些圖片工具和網站.)
  • 使用Material Design設計的keylines, 使用固定的格子大小.
  • 使用顏色的時候當心一些. (這裏推薦了一些調色板網站)
  • 選擇字體要明智一些.

LIBRARIES & CODE

Material Components

模塊化和可定製的Material Design UI組件. Android, iOS, Web.

Android-oss from Kickstarter

Kickstarter開源了他們的Android應用.

stencil

一個kotlin寫的Android庫, 實現一種文字路徑的動畫.

AuthManager

包裝了Google Sign-In和SmartLock的Manager.

FolioReader-Android

一個ePub閱讀器和解析框架.

BufferTextInputLayout

對Support Library中的TextInputLayout的擴展, 增長了字數統計.

TextLayoutBuilder

使用Builder模式來配置建立一個Layout的屬性.

相關文章
相關標籤/搜索