原创 android root原理

android 獲取設備root權限 Android 獲取Root其實和linux切換Root用戶是一樣的,在Linux下我們只需要執行“su”,或者“sudo”,然後輸入Root賬戶和密碼就可以獲取Root權限了(其實就是將uid和gi

原创 Android Unable to resolve dependency for ':app@debug/compileClasspath

之前還好好的項目,今天運行起來就報錯, Unable to resolve dependency for ':app@debug/compileClasspath 先說解決辦法 Open the Preferences, by click

原创 從源碼深入理解Context以及相關創建過程

Context關聯類 文章較長,分析了Application、Activity、Service各自Context啓動過程,耐心看完,會讓你思路更清晰 Context意爲上下文,是一個應用程序環境信息的入口 使用場景: 使用Context調

原创 java 反射基礎知識與實踐

本篇重點講解java基礎知識與系統提供api的運用 java class類 java中某個類無論生成多少個對象,這些對象都會對應同一個Class對象,這個Class對象由JVM生成,通過它可以獲悉整個類的結構,包括方法、屬性等等。 原理

原创 Android Activity的工作原理

Activity 是四大組件中用的最多的,也是最複雜的,本篇文章就重點總結Activity的啓動和通信原理 AMS(AcctivityManagerService)從字面意思理解看是管理Activity的,其實四大組件都歸它管 PMS(P

原创 Android 插件化基礎

Android 原生語言爲java,java文件通過java虛擬機後會變爲.class文件,java文件雖然能在JVM中運行,但是想在Android運行環境中執行還需要特殊處理,那就是dx處理,它會對.class文件翻譯、重構、解釋、壓縮

原创 java NIO 之 ByteBuffer

概念理解   對於ByteBuffer的一些概念不理解的情況下,如果直接打開源碼,硬啃,是一種方法,但是對於有些耐心不足的同學,恐怕堅持不下去。   第一點,ByteBuffer底層的存儲結構就是數組,所有的操作都是基於數組的操作。數組有

原创 android8.0 源碼燒錄Nexus 6P設備

之前下載的源碼都是跑在模擬器上的,前段時間入手了個Nexus 6P,把8.0系統源碼燒錄進了真實的手機,再次記錄一下,一下操作必須要在完成源碼之後,並且成功編譯之後進行的操作,如未下載源碼或編譯失敗,請自行編譯,在此友情提示:源碼最好在u

原创 adb devices no permissions user in plugdev group are your udev rules wrong

Linux下調試android設備: adb devices List of devices attached xxxxxxxx no permissions (user in plugdev group; are your ud

原创 android apk 安裝流程

android系統中存在一個特殊的區域,在開機的時候,加載這塊區域的信息,通過系統掃描這塊區域,把對應的內容加載都內存中去,每個安裝一個新的應用,就會重新更新此區域,這樣就能保持最新的狀態,這就是爲什麼在手機桌面點擊一個圖標就能快速啓動一

原创 mac 編譯android8.0源碼遇到的問題

此文連接上文,只是記錄中間遇到的出錯誤問題,詳細步驟就不說了 macOS:10.15.2 android版本:8.0.0_r16 java版本:jdk1.8.0_181. 移動硬盤:區分大小寫,準備了200G(編譯前102G,編譯後145

原创 記錄mac端下載android源碼過程中的錯誤

本文主要記錄下載過程中的錯誤,詳細的下載過程後續再補上,折騰這些錯誤折騰了很久,在此記錄一下 repo: command not found       終端直接輸入:       echo 'export PATH=$PATH:$HOM

原创 mac 編譯H264以及ffmpeg

最近項目中需要ffmpeg來操作h264流,然而ffmpeg並沒有並沒有集成h264編碼器,需要引入libx264,所以在電腦上重新編譯了ffmpeg以及h264,真是一路踩坑的過程,中間遇到很多莫名的錯誤,在此記錄下,希望後來看到的你,

原创 java 中的final

final類功能概述 final類可以修飾引用、類、方法 修飾引用 ①:如果此引用是基本數據類型或者是string,則該引用是常量,該值無法修改 ②:如果引用是引用數據類型,比如:對象、數組,則該數組、對象本身可以修改,但是指向該對象、引

原创 android Activity啓動流程

Activity的啓動過程,我們可以從Context的startActivity說起,其實現是ContextImpl的startActivity,然後內部會通過Instrumentation來嘗試啓動Activity,這是一個跨進程過程,