摘要:
前言 ContentProvider為存儲和獲取數據提供統一的接口,它可以在不同的應用程序之間共享數據,本身就是適合進程間通信的。ContentProvider底層實現也是Binder,但是使用起來比AIDL要容易許多。系統也預制了很多的ContentProvider,例如通訊錄,音視頻等,這些操作
閱讀全文
摘要:
上一篇文章中我們介紹了使用Messenger來進行進程間通信的方法,但是我們能發現Messenger是以串行的方式來處理客戶端發來的信息,如果有大量的消息發到服務端,服務端仍然一個一個的處理再響應客戶端顯然是不合適的。另外,Messenger用來進程間進行數據傳遞但是卻不能滿足跨進程的方法調用,接下
閱讀全文
摘要:
Messenger可以在不同進程中傳遞Message對象,我們在Message中加入我們想要傳的數據就可以在進程間的進行數據傳遞了。Messenger是一種輕量級的IPC方案并對AIDL 進行了封裝,它實現起來比較容易,下面我們來看看如何實現。 首先我們先寫服務端(MessengerService.
閱讀全文
摘要:
1. 為何要開啟多進程 為何開啟android應用要開啟多進程,主要有以下幾點: 單進程所分配的內存不夠,需要更多的內存。在早期android系統只為一個單進程的應用分配了16M的可用內存,隨著手機的硬件的提升和android系統的改進,雖然可分配內存越來越多,但仍舊可以通過開啟多進程來獲取更多的內
閱讀全文
摘要:
1.什么是ANR 在Android上,如果你的應用程序有一段時間響應不夠靈敏,系統會向用戶顯示一個對話框,這個對話框稱作應用程序無響應(ANR:Application Not Responding)對話框。用戶可以選擇讓程序繼續運行,但是,他們在使用你的應用程序時,并不希望每次都要處理這個對話框。因
閱讀全文
摘要:
一.根源: 內存泄露簡單說就是已經沒有用的資源,但是由于被其他資源引用著無法被GC銷毀。 二.內存泄露常見場景 1.單例導致內存泄露 單例的靜態特性使得它的生命周期同應用的生命周期一樣長,如果一個對象已經沒有用處了,但是單例還持有它的引用,那么在整個應用程序的生命周期它都不能正常被回收,從而導致內存
閱讀全文
摘要:
1、 前言 如果你對App優化比較敏感,那么Apk安裝包的大小就一定不會忽視。關于瘦身的原因,大概有以下幾個方面: 對于用戶來說,在功能差別不大的前提下,更小的Apk大小意味更少的流量消耗,也意味著更多的用戶下載; 對于產品來說,大于競品的Apk意味著較低的下載基數,不利于驗證產品策略; 對于開發人
閱讀全文
摘要:
1、 電量測試Android4.1版本之后在系統增加了battery info模塊,記錄一定時間周期內整機及單個App的電量消耗。2.1 注冊廣播ACTION_BATTERY_CHANGED 然后就可以獲取電池電量、充電狀態、電池狀態等信息。具體參考BatteryManager。缺點:①獲取到的是手
閱讀全文
摘要:
一. 網絡監控 1 Network MonitorAndroid Studio自帶的Network Monitor簡單直觀,可以看出時間段之內的網絡請求數量及訪問速率; 2 Charles、Fiddler等抓包工具使用Charles、Fiddler等抓包工具同樣可以實現Network Monitor
閱讀全文