Android開發技術周報 Issue#98

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

新聞

  1. Android Studio 2.2發布:改進平臺支持 速度提升更智能

  2. Nexus 5非官方吃上Android 7.0 Nougat

  3. Google Pixel新機可能允許雙安卓系統啟動

教程

  1. C++11學習

    當Android用ART虛擬機替代Dalvik的時候,為了表示和Dalvik徹底劃清界限的決心,Google連ART虛擬機的實現代碼都切換到了C++11。C+11的標準規范于2011年2月正式落稿,而此前10余年間,C++正式標準一直是C++98/03[①]。相比C++98/03,C++11有了非常多的變化,甚至一度讓筆者大呼不認識C++了[②]。不過,作為科技行業的從業者,我們要銘記在心的一個鐵規就是要擁抱變化。既然我們不認識C++11,那就把它當做一門全新的語言來學習吧。

  2. 推送 從入門到放棄

    推送簡直就是一種輕量級的騷擾方式自從有了推送,各個公司基本上都在使用推送,這確實是一個比較好的提醒方式,Android較iOS強的一個部分,也就是在于Android的Notification。Google教育我們利用好Android的通知模塊,做更多友好的交互,可這句話,翻譯成中文,不知不覺,就變成了在Notification中推送各種廣告,而且僅僅就是一些廣告,Notification各種牛逼的功能,完全不需要,這也違背了Google設計Notification的初衷。更關鍵的是,現在隨便找一款App,沒有推送的真是鳳毛麟角,更可惡的是,做外賣的App給我推送奧運新聞,一條新聞十幾個App推送,以至于現在很多用戶都非常反感各種推送廣告,就我本人而言,基本上會禁用所有廣告類的App的推送。

  3. Android LowMemoryKiller原理分析

    Android的設計理念之一,便是應用程序退出,但進程還會繼續存在系統以便再次啟動時提高響應時間. 這樣的設計會帶來一個問題, 每個進程都有自己獨立的內存地址空間,隨著應用打開數量的增多,系統已使用的內存越來越大,就很有可能導致系統內存不足, 那么需要一個能管理所有進程,根據一定策略來釋放進程的策略,這便有了lmk,全稱為LowMemoryKiller(低內存殺手),lmkd來決定什么時間殺掉什么進程.

  4. 拆輪子系列:拆 RxJava

    RxJava 這個項目已經持續四年半了,第一個 commit 是在 2012 年 3 月 18 號。我從 14 年 11 月份開始使用 RxJava,應該算是比較早的,將近兩年過去了,現在 RxJava 1.x 版本已經進入穩定期,2.0 版本也已經進入了 RC 階段。原本打算把 Advanced RxJava 系列博客翻譯完之后再拆 RxJava 的,但是前兩周看了一個 JW 講 RxJava 的視頻,突然有種隱隱打通任督二脈的感覺,索性趁著中秋佳節,一鼓作氣把 RxJava 好好拆開看個究竟。本文的分析基于 RxJava 截至 2016.9.16 的最新源碼,非常建議大家下載 RxJava 源碼之后,跟著本文,過一遍源碼

  5. Android熱更新方案Robust

    從去年開始,Android平臺出現了一些優秀的熱更新方案,主要可以分為兩類:一類是基于multidex的熱更新框架,包括Nuwa、Tinker等;另一類就是native hook方案,如阿里開源的Andfix和Dexposed。這樣客戶端也有了實時修復線上問題的可能。但經過調研之后,我們發現上述方案或多或少都有一些問題,基于native hook的方案:需要針對dalvik虛擬機和art虛擬機做適配,需要考慮指令集的兼容問題,需要native代碼支持,兼容性上會有一定的影響;基于Multidex的方案,需要反射更改DexElements,改變Dex的加載順序,這使得patch需要在下次啟動時才能生效,實時性就受到了影響,同時這種方案在android N [speed-profile]編譯模式下可能會有問題,可以參考Android N混合編譯與對熱補丁影響解析。考慮到美團Android用戶機型分布的碎片化,很難有一個方案能覆蓋所有機型。

  6. 安卓自定義View進階-Matrix Camera

    本篇依舊屬于Matrix,主要講解Camera,Android下有很多相機應用,其中的美顏相機更是不少,不過今天這個Camera可不是我們平時拍照的那個相機,而是graphic包下的Camera,專業給View拍照的相機,不過既然是相機,作用都是類似的,主要是將3D的內容拍扁變成2D的內容。眾所周知,我們的手機屏幕是一個2D的平面,所以也沒辦法直接顯示3D的信息,因此我們看到的所有3D效果都是3D在2D平面的投影而已,而本文中的Camera主要作用就是這個,將3D信息轉換為2D平面上的投影,實際上這個類更像是一個操作Matrix的工具類,使用Camera和Matrix可以在不使用OpenGL的情況下制作出簡單的3D效果。

  7. 那些你不知道的APK 瘦身,讓你的APK更小

    讓我們的apk文件盡可能更小,移除那些未使用的代碼和資源文件。本章節介紹了如何做到讓APK更小,性能更好,下載轉化率會更高,以及如何指定在構建APK過程中保留或移除項目中的代碼和資源,在我們還沒有分析APK大小之前,項目中存在一些資源放置處理不當,沒有統一的規范,依賴管理不合理,資源重疊,dex方法數過多、文件過大等問題,導致整個APK文件也比較大,對于下載轉化率必然有一定的影響。那么公司要求我們的產品APK體積大小要優化到3M左右。經過我們的努力終于達到要求,然而我們發現還能再小。

開源庫&項目

  1. AnoleFix

    Another hotfix 另一個熱修復方案 Alpha,來自InstantRun 和 Robust 類似

  2. TapTargetView

    Material Design 風格的使用指南提示效果

  3. Qart

    一個可以將圖片和二維碼合并成一張帶有圖片內容的二維碼的庫

  4. LowPoly

    一個可以將圖片轉換為 Lowpoly 風格的庫

  5. StylishMusicPlayer

    一款優雅時尚的 Android 播放器

  6. DrawableColorChange

    可以通過代碼動態改變 Drawable 顏色的庫

  7. java-error-handler

    Error handling library for Android and Java

  8. DoubleStickyHeadersList

    An Android library for double level section headers that stick to the top of list

  9. fingerlock

    FingerLock is a library designed to make fingerprint authentication an easy task for Android developers

  10. AndroidAudioConverter

    一個音頻格式轉換庫,支持 AAC, MP3, M4A, WMA, WAV、FLAC 等格式

  11. GoogleClock

    仿Google 2016 I/O大會里那個炫酷的時鐘,純SVG動畫

  12. CreditSesameRingView

    Imitation of Ali credit sesame new old ring view

  13. OhMyBiliBili

    高仿嗶哩嗶哩動畫安卓客戶端 - ( ゜- ゜)つロ 乾杯~

  14. UniqueAdapter

    借助DataBinding,只需要一個Adapter

 

 

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

 

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