Android開發周報:Android相機開發、內存泄漏總結
新聞
- 《在Google看來應用商店都將消亡,而搜索永存》 :智能手機用戶每天都要和各種各樣的App打交道,當然每天也要下載一定數量的App。而目前來說,要下載App,iOS用戶需要去App Store,而Android用戶則需要使用Google Play或是國內的應用商店。這似乎已經成為了理所當然的一件事。然而,根據國外媒體的報道,Google目前正在測試一種新的下載App的方法,在未來,Android用戶也許不用再使用Google Play就可以直接下載App了。
- 《每20部Android手機就有1部被root》 :國外的研究人員研究結果表明:僅有10%的Android設備擁有預裝“輸入密碼”設備加密的功能,這種情況會導致許多手機丟失或被偷之后陷入數據泄露的威脅境地。另外,每3部Android智能手機就有1部沒有使用“輸入密碼”鎖屏功能,這就讓攻擊者更容易訪問設備了。而在iPhone中,僅有5%的用戶沒有啟用這項功能。讓情況變得更加糟糕的是,每20部Android手機中就有1部被root,而iPhone的越獄比例只有0.4%。
教程
- 《Android相機開發那些坑》 :Android系統提供了兩種使用手機相機資源實現拍攝功能的方法,一種是直接通過Intent調用系統相機組件,這種方法快速方便,適用于直接獲得照片的場景,如上傳相冊,微博、朋友圈發照片等。另一種是使用相機API來定制自定義相機,這種方法適用于需要定制相機界面或者開發特殊相機功能的場景,如需要對照片做裁剪、濾鏡處理,添加貼紙,表情,地點標簽等。這篇文章總結了Android相機開發的相關知識、流程,以及容易遇到的坑,希望能幫助今后可能會接觸Android相機開發的朋友快速上手,節省時間,少走彎路。
- 《Android Studio2.0預覽版之Android模擬器》 :新 Android模擬器的早期預覽版現在可以試用了。作為Android Studio 2.0的一部分,除了用于測試的物理Android硬件外,最新版本的Android模擬器可幫助你針對各種屏幕尺寸和配置測試你的應用。此外,使用官方版Android模擬器可以讓你使用最新版本的Android 進行測試。在此基礎上,新Android模擬器的兩大優勢包括:速度和性能、易用性和強大的用戶界面。
- 《指定App是否位于前臺判斷》 :有時候我們需要通過判斷App是否運行在前臺而進行一些UI處理。本文提供一個判斷App是否處于前臺的工具類,擁有多達5種判斷方法,最后一種方法堪稱Android黑科技,既可以突破Android5.0以上的權限封鎖,獲取任意前臺App的包名,又不需要權限。
- 《Android內存泄漏總結》 :內存管理的目的就是讓我們在開發中怎么有效的避免應用出現內存泄漏的問題。內存泄漏大家都不陌生了,簡單粗俗的講,就是該被釋放的對象沒有釋放,一直被某個或某些實例所持有卻不再被使用導致GC不能回收。作者從Java內存泄漏的基礎知識開始,并通過具體例子說明了Android引起內存泄漏的各種原因,以及如何利用工具分析了應用內存泄漏。
- 《Android應用安全開發之源碼安全》 :Android Apk很容易通過逆向工程進行反編譯,從而是其代碼完全暴露給攻擊者,使Apk面臨破解,軟件邏輯修改,插入惡意代碼,替換廣告商ID等風險。本文從混淆保護、二次打包防護、SO保護、資源文件保護、反調試技術、應用加固技術幾方面介紹了如何保護Apk。文中提到的技術非常實用,推薦大家大膽實踐。
- 《Android子線程真的不能更新UI嗎?》 :當一個程序第一次啟動的時候,Android會同時啟動一個對應的主線程,這個主線程就是UI線程,也就是ActivityThread。UI線程主要負責處理與UI相關的事件,如用戶的按鍵點擊、用戶觸摸屏幕以及屏幕繪圖等。系統不會為每個組件單獨創建一個線程,在同一個進程里的UI組件都會在UI線程里實例化,系統對每一個組件的調用都從UI線程分發出去。所以,響應系統回調的方法永遠都是在UI線程里運行。那么子線程真的不能更新UI嗎?閱讀文章,看看作者是如何回答該問題的。
- 《APK瘦身實踐》 :Apk瘦身應該是每一位Android工程師都會進行的一項工作。比如會開啟minifyEnabled、開啟shrinkResources、去除不相關的大型庫、去除沒有使用到的圖片和代碼。但即使這樣,往往不能達到老板們的要求,所以我們需要進行深度的瘦身。本文介紹了幾種減小Apk大小的技巧,相信對大家會有所幫助。
- 《Android M Launcher3主流程源碼淺析》 :有些人可能覺得Launcher很高端,其實Launcher的實質也就是一個普通應用,它只是比普通應用多配置了Category的android:name=“android.intent.category.HOME”屬性而已。當Android開機啟動成功以后框架層會嘗試啟動包含上面屬性配置的Activity,這樣被啟動的那個Activity就成了桌面。當我們按下設備的Home鍵時也會觸發包含該屬性的Activity。只不過當系統中只存在一個包含該屬性的應用時,無論開機還是Home鍵觸發都只會自動啟動默認的;當存在多個時無論哪種觸發都會彈出選擇框進行選擇設置。本文是一篇介紹Launcher3源碼的文章,簡單的介紹了Launcher3的加載流程。
開源項目
- uCrop :uCrop是一款漂亮又實用的圖片裁剪庫。
- SmoothCheckBox :這是一個自定義的CheckBox,提供了動畫支持,并且顏色、邊框都可以配置,集成也很方便。SmoothCheckBox比系統自帶的CheckBox漂亮很多。
- blockcanary :BlockCanary是一個Android平臺的一個非侵入式的性能監控組件,應用只需要實現一個抽象類,提供一些該組件需要的上下文環境,就可以在平時使用應用的時候檢測主線程上的各種卡慢問題,并通過組件提供的各種信息分析出原因并進行修復。
- SwipeStack :SwipeStack實現了卡片堆積效果,支持手勢滑動移除功能,效果很贊。
工具
- Androl4b :專為安卓測試、安全研究準備的一個虛擬機系統,里面集成了一系列Android應用程序評估測試所需的工具,可用于逆向工程和惡意軟件分析。
來自: http://www.infoq.com/cn/news/2016/02/Android-weekly-apk
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!