Android開發周報:Play Store搜索廣告推出、ListView源碼解析
新聞
- 《正式版Android M預計10月發布》 :Android M已經連續放出了兩個開發者預覽版,按照計劃還會有第三個,然后才是正式版。這第三個要多等等了,但等待將是值得的。Google的一名員工Wojtek Kaliciński公開發帖稱,Android M Developer Preview 3需要更長時間打磨,因為它們想使之接近最終正式版。
- 《谷歌放大招,拯救用戶的老舊Android機》 :其實谷歌的Android系統升級并不慢,幾乎每年都會有新版本。從Android系統誕生以來,就飽受碎片化的困擾,很多機器都不能及時升級。不過好消息來了,為了解決安卓舊手機無法升級,也為了重新奪回對安卓系統的控制權,在下一代的Android6.0系統中,核心系統更新和OEM廠商更新將會區分開來,核心系統將單獨升級。谷歌表示,此舉還有利于解決飽受詬病的安卓碎片化問題。
- 《坐擁10億Android用戶,Google終于開始動Google Play 這座金礦了》 :Google Play覆蓋了190多個國家/地區的超過10億 Android設備用戶,不管是對Google自身來說,還是對在上面分發應用的開發者來說,這都是一個不可小覷的金礦。今年2月份開始,Google Play就開始小范圍測試搜索廣告服務,如今Google終于在Android Developers官方博客上宣布,正式推出搜索廣告服務。
教程
- 《搞個這樣的App要多久?》 :無論你是技術小弟一枚,還是公司的技術總監,總會被別人問到類似于標題這樣的問題。如果提問者是同行,我們可以這樣回答:大概需要2個月,一個后端工程師,Android和iOS工程師各一枚,外加美工...,然后同行點點頭,感覺你很務實,也很機智,最后按照你的思路開干。但如果是被外行問到,顯然上述回答并不是提問者想要的答案。點擊標題,來看看這個“如有雷同,純屬巧合”的故事吧。
- 《Android下的NFC是如何開發的?》 :隨著物聯網與O2O業務的發展,NFC在小額支付領域的前景越來越廣闊。本文結合多個公開文檔,簡要介紹了NFC的工作場景,同時使用RxAndroid實現了對NFC字節流的讀取與異常捕捉;介紹了卡模擬過程中與Android底層的交互原理與簡單示例。
- 《Android ListView工作原理完全解析,帶你從源碼的角度徹底理解》 :在Android所有常用的原生控件當中,用法最復雜的應該就是ListView了,它專門用于處理那種內容元素很多,手機屏幕無法展示出所有內容的情況。ListView可以使用列表的形式來展示內容,超出屏幕部分的內容只需要通過手指滑動就可以移動到屏幕內了。本文從源碼的角度解析了 ListView的工作原理。
- 《使用O-LLVM和NDK對Android應用進行混淆》 :Android開發中經常需要對敏感信息進行加密,避免不了要將密鑰存放在終端設備上,那么如何防止密鑰被逆向出來呢?相比較密鑰從Java層下移到NDK層是比較安全的,本文就來介紹如何對NDK層代碼進行混淆,以更好的保護我們的密鑰。這里是 英文地址 。
- 《Android DataBinding:再見Presenter,你好ViewModel!》 :最近一段時間MVP模式已經成為Android應用開發UI層架構設計的主流趨勢。類似TED MOSBY,nucleus和mortar之類的框架都引入了Presenters來幫助我們搭建簡潔的App架構。它們也(在不同的程度上)幫助我們處理Android平臺上臭名昭著的設備旋轉和狀態持久化等問題。MVP模式也有助于隔離樣板代碼,雖然這并不是MVP模式的設計初衷。本文詳細分析了這種架構。
- 《為什么刷機后系統第一次啟動會很慢?》 :在做Android內核開發的過程中,我們會發現,每次編譯完系統源碼,燒錄到設備或手機中后,第一次啟動都會很慢很慢,要好幾分鐘甚至十幾分鐘,為什么會出現這樣的現象呢?系統刷機后第一次啟動與后面再次啟動有什么不同呢?閱讀文章,了解真相。
- 《使用Android lint發現并解決高版本API問題》 :在編寫代碼時,為了實現一些功能,我們需要使用高版本的API,比如SharedPreference的Editor中的apply方法為API 9開始引入,在API 9以上的機器使用沒有問題,但是在API 8上,如果運行時執行了這段代碼,就會崩潰,問題相當嚴重。尤其是該問題出現在正式版中,后果不堪設想。本文介紹了如何使用lint發現并解決這些問題。
- 《 TabLayout:另一種Tab的實現方式》 :在5.0以前我們想要實現像網易新聞客戶端那樣的的Tab可以有很多種選擇:比如古老的TabHost,3.0后ActionBar所提供的Tab,以及各種成熟的Tab開源控件都可以直接或間接地實現Tab的效果。谷歌在5.0后放出的design包中推出了官方的TabLayout控件,TabLayout可以 方便地實現類似效果,并且符合谷歌自家的MD設計理念,本文介紹了TabLayout的使用方法。
開源項目
- Carpaccio :Carpaccio是一個第三方的Android DataBinding庫,它可以使View變得非常“聰明“,使用Carpaccio后,如果要讓一個ImageView從網絡加載圖片,我們不再需要寫相關的網絡請求代碼,在layout中添加一個標簽就可以完成所有操作。Carpaccio是非常實用的一個類庫。
- TagCloudView :TagCloudView是一個支持 SingleLine模式的標簽云開源項目,使用TagCloudView可以輕松實現知乎問題話題列表標簽云效果,TagCloudView還提供了豐富的自定義樣式選擇。
- CustomActivityOnCrash :每個App都會有奔潰的可能性,無論我們開發的時候多認真,測試過多少種機器,總會有一定的錯誤率。當App異常時,系統會彈出一個錯誤對話框。使用該項目,我們可以在App異常時顯示一個自定義的錯誤頁面,從而提升產品的用戶體驗。
工具
- 上傳apk到fir的gradle插件 :App內測需要把安裝把安裝包放在一個地方進行托管,方便內測人員下載。國內有蒲公英,fir等這些網站可以用。該工具是非官方的一個gradle上傳工具。
- JSONExport :JSONExport是一款Swift編寫Mac OS X桌面應用,支持將JSON輸出為Objective-C/Swift/Java語言類模型。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!