Android開發技術周報 Issue#103
新聞
教程
-
Android系統啟動完成后,ActivityManager, PackageManager等各大服務都運行在 system server 進程,app應用需要使用系統服務都是通過binder來完成進程之間的通信,上篇文章徹底理解Android Binder通信架構,從整體架構以及通信協議的角度來闡述了Binder架構。那對于binder線程是如何管理的呢,又是如何創建的呢?其實無論是 system server 進程,還是app進程,都是在進程fork完成后,便會在新進程中執行onZygoteInit()的過程中,啟動binder線程池。接下來,就以此為起點展開從線程的視角來看看binder的世界。
-
Android Studio 2.2 Native 開發新特性
Android Studio Native 開發新特性掃描:1提供對 CMake(官方默認)、ndk-build 兩種構建方式的支持。原來的 Experimental Gradle Plugin 構建方式仍然可用,官方建議遷移。2.構建生成的 .so 文件將直接被 Gradle 打包在 apk 中。3.以 LLDB 為 Native 層的調試器,提供跨 Java 層和 Native 層的 Hybrid Debugger。4.開發環境提供對 Native 代碼編輯的支持。5.對 Native 方法查找引用,可以看到 IDE 同時列出 Java 層和 Native 層的方法(函數)及其引用。6.新特性要求 Android Gradle Build Tools 版本必須為 2.2.0 及以上,且 Gradle 版本必須為 2.14.1 及以上。
-
毫無疑問,混淆是打包過程中最重要的流程之一,在沒有特殊原因的情況下,所有 app 都應該開啟混淆。 首先,這里說的的混淆其實是包括了代碼壓縮、代碼混淆以及資源壓縮等的優化過程。依靠 ProGuard,混淆流程將主項目以及依賴庫中未被使用的類、類成員、方法、屬性移除,這有助于規避64K方法數的瓶頸;同時,將類、類成員、方法重命名為無意義的簡短名稱,增加了逆向工程的難度。而依靠 Gradle 的 Android 插件,我們將移除未被使用的資源,可以有效減小 apk 安裝包大小。
-
互聯網內容載體變遷歷程,文字——圖片/聲音——視頻——VR/AR——…….。從直播1.0秀場時代(YY),2.0游戲直播(斗魚、虎牙、熊貓)到如今全民直播3.0泛生活娛樂時代(映客、花椒),國外直播app(Meerkat 、Periscope),隨著VA/AR/MR提出的沉浸式視聽體驗,直播4.0時代很快就能到來。在這個全民娛樂的時代,直播已經火得不要不要的,各大公司都有自己的直播產品。本文主要從直播的一些基本知識,一步步打造直播app。直播那么火的背后有什么樣的技術支撐呢?
-
Android系統線控和歌曲信息屏顯的那點事
目前Android系統中主流的音樂播放器都支持線控的功能,線控設備包括有線耳機和藍牙耳機或藍牙車機,當不方便操作手機的時候可以通過線控來控制音樂的播放暫停以及切歌。同時當音樂播放的時候部分手機(如小米)會在系統的鎖屏頁面上展示各種歌曲信息,如歌曲名,歌手名,專輯圖片甚至歌詞,同時還可以提供一些播放控制的操作。這些都是如何實現的呢?其中是否有坑?下面慢慢道來。在Android 5.0之前的版本中,Android推薦使用AudioManager的一系列功能來實現線控和鎖屏信息顯示功能。
-
Android卡慢監控組件,用于監控app在整個使用過程中出現的界面卡頓現象,嘗試還原其中的調用堆棧信息,追蹤代碼來源;以堆棧信息的形式體現出來,附加了CPU使用率做參考;上報到統計平臺,進行聚合排名
開源庫&項目
-
A custom layout manager for RecyclerView which mimicric TextView span behaviour, flow layouts behaviour with support of amazing recyclerView features
-
Vertical intro allows you to integrate material vertical intro to your app
-
This is a library that contains practical animations: Rotation, Flip, Horizontal and Vertical Shake,
-
Example app for shortcuts in design library v25
-
A ListView-like FastScroller for Android’s RecyclerView
-
一款基于 RxJava+Retrofit+MVP+Material Design 開發的 PHPHub 第三方 Android 客戶端
工具
-
A set of cross-platform libraries and protocols to allow the sharing of design values and live refinement of apps during the development process.
設計
-
Explore, iterate, and test your ideas. A new tool for designing modern interfaces, built and used by designers at 非死book
-
一個開源的用 Sketch 繪制圖標的教程
來自:http://www.androidweekly.cn/android-dev-weekly-issue-103/