原创 發生ANR之後的事情
觸發ANR條件 Service Timeout:前臺服務20s內未完成執行,後臺服務超過200s BroadcastQueue Timeout:前臺廣播在10s內未完成,後臺廣播超過60s未完成 ContentProvider
原创 通過AMS.attachApplicationLocked()引入Binder.linkToDeath機制
當系統創建進程以後會調用AMS.attachApplicationLocked(),在這個方法內部會註冊該進程的死亡回調 //其中thread是ActivityThread通過誇進程通信獲取Binder的代理對象,然後調用link
原创 理解jvm如何加載類
簡介 說道類加載器可能大家第一反應就是啊這個東西我沒有接觸過很難,而且一般情況下對於app開發應用也用不到類加載器,但是對於框架開發者來說類加載器就是家常便飯一樣,那類加載器到底是什麼東西,真的難道我們都不敢接觸了嗎?下面就聽菜
原创 java反射總結
所用到的類 java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Field java.lang.reflect.Method java.lang.ref
原创 Jni使用
今天暫時寫到這裏,有時間繼續總結全面 概述jni(Java Native Interface)是什麼? 它提供了若干的API實現了Java和其他語言的通信(主要是C&C++)。 jni主要解決java限制的事情,或者要進行高效開發
原创 Crash分析
adb shell //輸出所有event_log中的tag cat /system/etc/event-log-tags 常用tag: am_low_memory:位於AMS.killAllBackgroundProcess
原创 H.264小結
由於畢設做視頻直播技術,所以需要學習h.264只是以下內容來自網絡 少說話來一發 H.264是幹什麼的? 首先我們得明白,我們研究h.264爲的是什麼,其次我們得明白一些基礎概念,然後纔是具體實施。下來我們說下h.264是
原创 apk資源打包過程分析
本文參考了羅大仙還有一個未知名網友 Android應用資源的分類 assets res animator anim color drawable layout menu raw:它們和assets類資源一樣,都是原裝不動地打包
原创 殺進程優先級
查看adj 可以通過命令: adb shell //篩選進程 ps | grep <包名|pid> //然後,其中oom_score_adj是內核計算過後的adj cat proc/<pid>/oom_score_adj 方法2
原创 標誌性log關鍵詞
adb shell //輸出所有event_log中的tag cat /system/etc/event-log-tags 常用tag: am_low_memory:位於AMS.killAllBackgroundProcess
原创 makefile編寫
#設置當編譯路徑爲當前文件夾所在路徑 LOCAL_PATH := $(call my-dir) #清空編譯環境的變量(由其他模塊設置過的變量) include $(CLEAR_VARS) 其中: #BUILD_STATIC_L
原创 adb中常用的命令
進程線程有關 在adb shell中 adb shell ps eg: capricorn:/ # ps USER PID PPID VSIZE RSS WCHAN PC NA
原创 Activity啓動1_參數解析
Am.java public static void main(String[] args) { (new Am()).run(args); } public void run(String[] args) {
原创 Activity啓動2-startActivityMayWait方法
我們從上一節分析參數開始最終達到: result = mInterface.startActivityAndWait(null, null, intent, mimeType,
原创 Activity啓動3-startActivityLocked方法
int startActivityLocked(IApplicationThread caller, Intent intent, Intent ephemeralIntent, String reso