Android開發技術周報 Issue#104

MQZIsiah 8年前發布 | 5K 次閱讀 安卓開發 Android開發 移動開發

新聞

  1. Google已正式結束對Eclipse Android開發工具的支持

  2. Google Play推出軟件新訂閱戶折扣功能

教程

  1. 記一次 StackOverflow 崩潰分析: Proguard 5.3 錯改指令

    近期工作主要在細化項目的proguard混淆規則, 簡單的去掉一些暴力keep, 可以減少項目1k+的方法數. 在刪除某些配置之后, 盡管我知道對功能沒有影響, 還是會去測一下功能是否正常. 于是就遇到了一個隱藏在主干上的StackOverflow崩潰。從堆棧上看, 匿名內部類的run調MyApp.startActivity, MyApp.startActivity又new了一個Runnable, 它的run繼續調MyApp.startActivity, 最終棧溢出. 看了堆棧, 還以為是一個簡單的問題, 直接去找到了代碼.

  2. 安卓自定義View進階-MotionEvent詳解

    Android MotionEvent 詳解,之前用了兩篇文章 事件分發機制原理事件分發機制詳解 來講解事件分發,而作為事件分發主角之一的 MotionEvent 并沒有過多的說明,本文就帶大家了解 MotionEvent 的相關內容,簡要介紹觸摸事件,主要包括 單點觸控、多點觸控、鼠標事件 以及 getAction() 和 getActionMasked() 的區別。

Android 將所有的輸入事件都放在了 MotionEvent 中,隨著安卓的不斷發展壯大,MotionEvent 也開始變得越來越復雜,

  1. Android系統中的進程管理:進程的優先級

    本文會主要講解Android系統對于進程優先級的管理。優先級反應了系統對于進程重要性的判定。當系統剩余內存很低的時候,系統便會按照進程的優先級倒序殺死進程以回收內存。關于系統如何回收進程我們會在后面的文章中講解,本文主要講解系統對于進程優先級的判斷依據和計算方法。在Processes and Threads (如果你還沒有閱讀,請立即閱讀一下這篇文章)一文中,我們已經了解到,系統對于進程的優先級有如下五個分類:前臺進程、可見進程、服務進程、后臺進程、空進程,這只是一個粗略的劃分。其實,在系統的內部實現中,優先級遠不止這么五種。

  2. Android 7.0中的多窗口實現解析

    在以往的Android系統上,所有Activity都是全屏的,如果不設置透明效果,一次只能看到一個Activity界面。但是從Android N(7.0)版本開始,系統支持了多窗口功能。在有了多窗口支持之后,用戶可以同時打開和看到多個應用的界面。并且系統還支持在多個應用之間進行拖拽。在大屏幕設備上,這一功能非常實用。本文將詳細講解Android系統中多窗口功能的實現。

  3. DataBinding實現原理探析

    DataBinding 技術的出現,肯定是為了解決我們在開發中的一些痛點問題。所以,了解 DataBinding 要解決的問題,能夠使我們更深刻地理解 DataBinding 技術的設計實現。從開發角度看,簡言之,DataBinding 主要解決了兩個問題:1.需要多次使用 findViewById,損害了應用性能且令人厭煩 2.更新UI數據需切換至UI線程,將數據分解映射到各個view比較麻煩,應該說,針對上述問題,都有第三方解決方案。第一個問題可以使用 Jake Wharton 的 ButterKnife;對于第二個問題,谷歌提供了 Loop-Handler 方案,你還可以使用 RxJava,EventBus 等方案,但它們只是解決了線程切換的問題,卻沒有解決將數據分解映射到各個view的問題,這正是 DataBinding 的魅力所在!

  4. Activity 全屏,沉浸式模式這一篇就夠了

    第一次在項目中要用到全屏功能的時候無從下手,然后就是去百度了。百度到的結果都是差不多的。不過直接把代碼貼過來的確是可以用的。但是除了知道怎么做之外還想去理解它,因為只有理解了才能舉一反三嘛。好在在后來的時候看到了官方的文檔,寫的非常詳細。

  5. Android研發安全-Activity組件安全(上)

    Activity組件是用戶唯一能看見的組件,作為軟件所有功能的顯示載體,其安全性不言而喻。針對Activity組件安全,作為一個安卓開發者來講需要在日常開發過程中注意兩點:1.Activity訪問權限的控制 2.Activity被劫持,本篇文章將分享Activity訪問權限控制方面的安全問題,首先科普下基礎知識,Activity類型和使用方式決定了其風險和防御方式,故將Activity分類如下: Private、Public、Parter、In-house, Android中提供了Intent機制來協助應用間的交互與通訊,Intent負責對應用中一次操作的動作、動作涉及數據、附加數據進行描述,Android則根據此Intent的描述,負責找到對應的組件,將 Intent傳遞給調用的組件,并完成組件的調用。

  6. 有贊Android客戶端網絡架構演進

    Android客戶端網絡請求是每一個應用都不可或缺的模塊,其設計的好壞直接影響應用的性能和代碼穩定性、擴展性。Android網絡請求最開始官方只提供了最基礎的方法,開發者必須在此基礎上進行二次封裝,這樣就要求開發者對Http請求協議、緩存、JSON轉換、錯誤處理以及線程切換等都比較熟悉,穩定性、可擴展性和可維護性都是比較大的挑戰。

  7. Android SurfaceView 源碼分析及使用

    SurfaceView 是 Android 中一種比較特殊的視圖(View),它跟平時時候的 TextView、Button 最大的區別是它跟它的視圖容器并不是在同一個視圖層上,它的 UI 顯示也可以不在一個獨立的線程中完成,所以對 SurfaceView 的繪制并不會影響到主線程的運行。綜合這些特點,SurfaceView 一般用來實現動態的或者比較復雜的圖像還有動畫的顯示。

開源庫 & App

  1. Android-ScaleLayout

    一個簡單的,方便的多屏適配的Android庫

  2. TyperEditText

    仿打字機效果

  3. RaiflatButton

    A raised button that lowers down to 0dp of elevation

  4. FloatingView

    FloatingView can make the target view floating above the anchor view with cool animation

  5. SquareMenu

    SquareMenu is a custom Floating Action Button with a different shape from traditional FABs and with three sub menu buttons.

  6. Monotweety

    一個用 Kotlin 寫的 推ter 客戶端

  7. SearchFilter

    Yalantis 開源的一個很贊的搜索框過濾效果

  8. Sketch mirror

    Yet another Sketch Mirror App for Android.

  9. MobileGuard

    一個管理安卓手機的應用,支持安卓7.0

  10. YaMvp

    又一個Mvp庫,超級簡單,但有足夠的功能

  11. SuperTextView

    一個功能強大的TextView,可以滿足日常大部分布局方式,開發者可已自行組合屬性配置出屬于自己風格的樣式

  12. dns66

    a DNS based ad blocker for Android.

  13. roundbutton

    可設置圓角背景邊框的的按鈕

工具

  1. kap

    Mac 上輕量級 GIF 錄屏小工具

  2. scouter

    Scouter is an open source APM and an open source profiler for java application like web applications on a tomcat .

活動

  1. Google Developer Day China 2016

    Google 開發者大會是一個互動交流的大會,旨在與開發者們和科技行業領先者們分享 Google 的最新科技和開放平臺。今年,Google 開發者大會將于12月8日和12月14日分別在北京和上海舉辦。我們非常高興與你分享創新科技,并且鼓勵開發者們去建立下一個偉大的移動網絡或本地應用。這不僅是創新科技的互聯網時代,更是屬于每一位開發者的時代。

設計

  1. 移動端用戶體驗:底部導航

    設計師都知道,設計不只是為了好看。設計也決定用戶如何融入一個產品,無論是網站還是app。這是一種交談。導航就是一種交談。因為如果用戶不明白使用方式,你的網站或app再漂亮都沒用。

 

來自:http://www.androidweekly.cn/android-dev-weekly-issue-104/

 

 本文由用戶 MQZIsiah 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!