Android開發技術周報 Issue#106
新聞
教程
-
本文主要介紹了ImageView的相關重要方法,從源碼角度剖析了一些容易令人混淆或百思不得其解的問題。一、正確合理使用ImageView 的src 和background:1.src :為ImageView 原圖內容,存放原圖大小,不會被拉伸;2.background:為Imageview的背景,會根據ImageView給定的長寬進行拉伸;在ImageView中,可以同時設置src和background屬性(為了減少繪制,可以根據使用場景來設置相應屬性); 由于src中存放的是原圖大小,如果需要對其縮放,就需要使用android:scaleTyle這個屬性(scaleType 只對src屬性有效),另外還可以對background設置透明度。
-
對于C++來說,內存泄漏就是new出來的對象沒有delete,俗稱野指針;對于Java來說,就是new出來的Object 放在Heap上無法被GC回收;本文通過QQ和Qzone中內存泄漏實例來講android中內存泄漏分析解法和編寫代碼應注意的事項。Java 中的內存分配:1.靜態儲存區:編譯時就分配好,在程序整個運行期間都存在。它主要存放靜態數據和常量;2.棧區:當方法執行時,會在棧區內存中創建方法體內部的局部變量,方法結束后自動釋放內存;3.堆區:通常存放 new 出來的對象。由 Java 垃圾回收器回收。
-
本文帶大家了解 Android 特殊形狀控件的事件處理方式,主要是利用了 Region 和 Matrix 的一些方法,超級實用的事件處理方案,相信看完本篇之后,任何奇葩控件的事件處理都會變得十分簡單。不得不說,Android 對事件體系封裝的非常棒,即便對事件體系不太了解的人,只要簡單的調用方法就能使用,而且具有防呆設計,能夠保證事件流的完整性和統一性,最大可能性的避免了事件處理的混亂,著實令人佩服。然而世界上并沒有絕對完美的東西,當【事件處理】遇上【自定義View】,一場好戲就開演了,玩的好叫坐鎮軍前,指揮千軍萬馬而分毫不亂,玩的不好就是抓耳撓腮,眼見敵人前后包抄而無可奈何。
-
人類大腦與眼睛對一個畫面的連貫性感知其實是有一個界限的,譬如我們看電影會覺得畫面很自然連貫,其幀率通常為 24fps;那么,用手機當然也需要感知屏幕操作的連貫性(尤其是動畫過渡),所以在手機領域 Android/iOS 索性就把達到這種流暢的幀率規定為 60fps。基于上面的背景,我們開發 App 的幀率性能目標就是保持在 60fps(16ms/幀),即我們在進行 App 性能優化時,要遵循如下準則:1.盡量保證每幀在 16ms 內處理完所有的 CPU 與 GPU 計算、繪制、渲染等操作,否則會造成丟幀卡頓問題。2.基于上面的卡頓原理,我們知道所謂的卡頓其實是可以量化的,每次是否能夠成功渲染是非常重要的問題,即 16ms 能否完整的做完一次操作直接決定了卡頓性能問題。
-
Android 開發繞不過的坑:你的 Bitmap 究竟占多大內存?
做移動客戶端開發的朋友們肯定都因為圖頭疼過,說起來曾經還有過 leader 因為組里面一哥們在工程里面加了一張 jpg 的圖發脾氣的事兒,哈哈。為什么頭疼呢?吃內存唄,時不時還給你來個 OOM 沖沖喜,讓你的每一天過得有滋有味(真是沒救了)。那每次工程里面增加一張圖片的時候,我們都需要關心這貨究竟要占多大的坑,占多大呢?Android API 有個方便的方法
-
隨著版本的迭代,業務的增加,QQ音樂apk的大小已經超過25M,其中res目錄占用的大小超過5.5M,所以提出了對安裝包進行瘦身的技術需求。業務的增加導致圖片越來越多,通過分析可以知道PNG格式圖片是項目中數量最多的圖片,關于PNG圖片的介紹可以參考: PNG文件格式詳解 。為了實現減包任務,對圖片進行壓縮是很重要的一部分。
開源庫 & App
-
仿寫自 Rebound,安卓曲線動畫調節工具,可方便設計師和開發者在程序內部逐個調節動畫的曲線、時間、延遲。提高動畫調試效率,減少編譯浪費的時間
-
Add curve at bottom of image views and relative layouts.
-
一個華麗麗的動效控件庫,所有控件原型取自 Nick Buturishvili 的設計作品
-
一個帶浮動按鈕的布局,按鈕可以隨意拖動展開
-
一個方便你在應用里使用自定義字體的庫
-
一個可以在瀏覽器里查看 App 的數據庫和 SharedPreferences 數據的庫
-
一個展示各種算法可視化的 App
-
全棧工程師培訓材料
-
Badge 風格的 TextView,支持 Shadow 和 Elevation
-
A easy and simple library to apply Gaussian blur on images
-
A simple spannable string helper
-
a BadeView base on android
-
A library to dynamic load view in online apk, can be used for hotfix dynamic update
-
Moxy is a library that help to use MVP pattern when you do the Android Application. Without problems of lifecycle and boilerplate code!
設計
-
Design Sprint是目前在灣區比較流行的一種設計方法。它是由Google內部(其實是Google Venture,Google投資的一家類似的咨詢公司,灣區的藍罐咖啡就他們做的叼叼的)梳理的一套如何帶領團隊快速做創新設計并驗證設計的基本流程。我翻譯整理了以下這兩個文檔《New Form Factors Sprint Playbook》《Product Design Sprint Playbook 》,總結了Design Sprint操作執行的要點和中間過程可用的方法,算是做個思路拓展也便于我在團隊內運用類似的方法開展設計創新活動。
來自:http://www.androidweekly.cn/android-dev-weekly-issue-106/