原创 發生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