Android開發技術周報 Issue#98
新聞
教程
-
當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,那就把它當做一門全新的語言來學習吧。
-
推送簡直就是一種輕量級的騷擾方式自從有了推送,各個公司基本上都在使用推送,這確實是一個比較好的提醒方式,Android較iOS強的一個部分,也就是在于Android的Notification。Google教育我們利用好Android的通知模塊,做更多友好的交互,可這句話,翻譯成中文,不知不覺,就變成了在Notification中推送各種廣告,而且僅僅就是一些廣告,Notification各種牛逼的功能,完全不需要,這也違背了Google設計Notification的初衷。更關鍵的是,現在隨便找一款App,沒有推送的真是鳳毛麟角,更可惡的是,做外賣的App給我推送奧運新聞,一條新聞十幾個App推送,以至于現在很多用戶都非常反感各種推送廣告,就我本人而言,基本上會禁用所有廣告類的App的推送。
-
Android的設計理念之一,便是應用程序退出,但進程還會繼續存在系統以便再次啟動時提高響應時間. 這樣的設計會帶來一個問題, 每個進程都有自己獨立的內存地址空間,隨著應用打開數量的增多,系統已使用的內存越來越大,就很有可能導致系統內存不足, 那么需要一個能管理所有進程,根據一定策略來釋放進程的策略,這便有了lmk,全稱為LowMemoryKiller(低內存殺手),lmkd來決定什么時間殺掉什么進程.
-
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 源碼之后,跟著本文,過一遍源碼
-
從去年開始,Android平臺出現了一些優秀的熱更新方案,主要可以分為兩類:一類是基于multidex的熱更新框架,包括Nuwa、Tinker等;另一類就是native hook方案,如阿里開源的Andfix和Dexposed。這樣客戶端也有了實時修復線上問題的可能。但經過調研之后,我們發現上述方案或多或少都有一些問題,基于native hook的方案:需要針對dalvik虛擬機和art虛擬機做適配,需要考慮指令集的兼容問題,需要native代碼支持,兼容性上會有一定的影響;基于Multidex的方案,需要反射更改DexElements,改變Dex的加載順序,這使得patch需要在下次啟動時才能生效,實時性就受到了影響,同時這種方案在android N [speed-profile]編譯模式下可能會有問題,可以參考Android N混合編譯與對熱補丁影響解析。考慮到美團Android用戶機型分布的碎片化,很難有一個方案能覆蓋所有機型。
-
本篇依舊屬于Matrix,主要講解Camera,Android下有很多相機應用,其中的美顏相機更是不少,不過今天這個Camera可不是我們平時拍照的那個相機,而是graphic包下的Camera,專業給View拍照的相機,不過既然是相機,作用都是類似的,主要是將3D的內容拍扁變成2D的內容。眾所周知,我們的手機屏幕是一個2D的平面,所以也沒辦法直接顯示3D的信息,因此我們看到的所有3D效果都是3D在2D平面的投影而已,而本文中的Camera主要作用就是這個,將3D信息轉換為2D平面上的投影,實際上這個類更像是一個操作Matrix的工具類,使用Camera和Matrix可以在不使用OpenGL的情況下制作出簡單的3D效果。
-
讓我們的apk文件盡可能更小,移除那些未使用的代碼和資源文件。本章節介紹了如何做到讓APK更小,性能更好,下載轉化率會更高,以及如何指定在構建APK過程中保留或移除項目中的代碼和資源,在我們還沒有分析APK大小之前,項目中存在一些資源放置處理不當,沒有統一的規范,依賴管理不合理,資源重疊,dex方法數過多、文件過大等問題,導致整個APK文件也比較大,對于下載轉化率必然有一定的影響。那么公司要求我們的產品APK體積大小要優化到3M左右。經過我們的努力終于達到要求,然而我們發現還能再小。
開源庫&項目
-
Another hotfix 另一個熱修復方案 Alpha,來自InstantRun 和 Robust 類似
-
Material Design 風格的使用指南提示效果
-
一個可以將圖片和二維碼合并成一張帶有圖片內容的二維碼的庫
-
一個可以將圖片轉換為 Lowpoly 風格的庫
-
一款優雅時尚的 Android 播放器
-
可以通過代碼動態改變 Drawable 顏色的庫
-
Error handling library for Android and Java
-
An Android library for double level section headers that stick to the top of list
-
FingerLock is a library designed to make fingerprint authentication an easy task for Android developers
-
一個音頻格式轉換庫,支持 AAC, MP3, M4A, WMA, WAV、FLAC 等格式
-
仿Google 2016 I/O大會里那個炫酷的時鐘,純SVG動畫
-
Imitation of Ali credit sesame new old ring view
-
高仿嗶哩嗶哩動畫安卓客戶端 - ( ゜- ゜)つロ 乾杯~
來自:http://www.androidweekly.cn/android-dev-weekly-issue-98/