原创 Android窗口管理框架概述

從上圖可以看出,Android的顯示系統分爲3層: UI框架層:負責管理窗口中View組件的佈局與繪製以及響應用戶輸入事件 WindowManagerService層:負責管理窗口Surface的佈局與次序 SurfaceFlinger

原创 Android APK安裝流程

我們來思考一下Android系統是如何安裝一個APK文件的,從直觀的流程上,當我們點擊一個APK文件或者從應用商店下載一個APK文件,會彈起一個安裝對話框,點擊安裝就可以安裝應用。 那麼這裏面的流程是什麼樣的呢?🤔 首先很容易想到的是,A

原创 Android APK加載流程

我們前面說過APK可以分爲代碼與資源兩部分,那麼在加載APK時也會涉及代碼的加載和資源的加載,代碼的加載事實上對應的就是Android應用進程的創建流程,關於這一塊的內容我們在文章01Android進程框架:進程的創建、啓動與調度流程已經

原创 Android編譯文件

一 ,Android.mk文件概述 主要向編譯系統指定相應的編譯規則。會被解析一次或多次。因此儘量減少源碼中聲明變量,因爲這些變量可能會被多次定義從而影響到後面的解析。這個文件的語法會把源代碼組織成模塊,每個模塊屬於下列類型之一  -

原创 Android開機服務啓動流程

在Android系統啓動時候,會解析init.rc文件,然後根據裏面的定義,啓動各種服務,如netd、zygote、servier_manager等等,但這些服務之間其實是有依賴關係的,而且當其中的某個服務啓動失敗時,有時候會影響後續的服

原创 Linux系統調用列表(收藏)

以下是Linux系統調用的一個列表,包含了大部分常用系統調用和由系統調用派生出的的函數。這可能是你在互聯網上所能看到的唯一一篇中文註釋的Linux系統調用列表,即使是簡單的字母序英文列表,能做到這麼完全也是很罕見的。   按照慣例,這個列

原创 SELinux LOG分析及添加權限

adb修改selinux Enforcing(表示已打開),Permissive(表示已關閉) getenforce; //獲取當前selinux狀態 setenforce 1; //打開selinux setenforce 0; //

原创 單片機SFR是什麼意思?

SFR全稱爲:special function register(翻譯爲:特殊功能寄存器) 要想明白什麼是sfr,需要先了解什麼是寄存器 寄存器是RAM和ROM的統稱 就像貓科動物是老虎與獅子的統稱一樣 ROM或者對於玩電腦的人並不陌生

原创 計算機是怎樣存儲聲音的?

電腦存儲聲音,也叫聲音的數字化,是以二進制存儲的。 用到的基本技術是脈衝編碼調製技術,主要包括採樣、量化、編碼3個基本過程。 簡化表述一下: 聲音的主要物理特徵是頻率和振幅,頻率你可以理解爲說話語速的快慢,而振幅你可以理解爲說話語調的高低

原创 Android.bp相關介紹

一、簡介 早期的Android系統都是採用Android.mk的配置來編譯源碼,從Android 7.0開始引入Android.bp。很明顯Android.bp的出現就是爲了替換掉Android.mk。 再來說一說跟着Android版本相

原创 Android藍牙開發中電話音頻(HSP,HFP)和媒體音頻(A2DP,AVRCP)

HSP(手機規格): 提供手機(移動電話)與耳機之間通信所需的基本功能。HFP(免提規格):在 HSP 的基礎上增加了某些擴展功能,原來只用於從固定車載免提裝置來控制移動電話。 A2DP(高級音頻傳送規格):允許傳輸立體聲音頻信號。 (相

原创 u32、u16、u8 數據類型

#define U32 unsigned int #define U16 unsigned short #define S32 int #define S16 short int #define U8 unsigned cha

原创 git rebase作用

假設你現在基於遠程分支"origin",創建一個叫"mywork"的分支。 $ git checkout -b mywork origin     現在我們在這個分支做一些修改,然後生成兩個提交(commit). $ vi fil

原创 Linux中的SELinux到底是什麼

一、前言 安全增強型 Linux(Security-Enhanced Linux)簡稱 SELinux,它是一個 Linux 內核模塊,也是 Linux 的一個安全子系統。 SELinux 主要由美國國家安全局開發。2.6 及以上版本的

原创 Ubuntu和Linux的區別

大家聽別人介紹自己的Ubuntu時,會聽到 “我的操作系統是Linux的” 。其實,這樣介紹是缺乏嚴謹性滴,我們只要知道兩點,基本上就搞清楚Linux和Ubuntu的關係:         1. 嚴格來說,Linux並不是操作系統,而是一