原创 Linux下diff/patch的生成和打入

文章目錄1、關於diff和patch的理解2、diff如何生成補丁文件3、patch如何將補丁打入目標文件 1、關於diff和patch的理解 diff:是對兩個集合的差運算 patch:是對兩個集合的和運算 2、diff如何生成

原创 Google商店中下載安兔兔評測,後下載3D資源插件,提示“您的設備與此版本不兼容”

文章目錄背景描述解決過程總結uses-featureuses-libraryuses-permission 背景描述 該問題起因是,在Google Play Store商店下載了安兔兔評測應用,在進行3D測試時,提示需要下載安兔兔

原创 Binder 內存映射和接收緩存區管理

文章目錄1. 傳統IPC方式的數據傳送原理2. Binder採用的IPC策略3. Binder一次拷貝的祕密 在回答題目的問題之前,首先有幾個問題,請讀者思考一下。 拋開Binder不談,傳統的IPC方式中,數據是怎樣從發送端

原创 adb調試之am命令詳解

文章目錄概述am 命令am 命令列表Activity 啓動命令trim-memory 命令Intent 參數1. 常用參數2. Extra 參數3. Flags 參數 概述 作爲一名開發者,相信對adb指令一定不會陌生。那麼在手機

原创 dumpsys命令使用指南

文章目錄簡介命令格式實例演示adb shell dumpsys activityadb shell dumpsys activity topadb shell dumpsys activity activitiesadb shel

原创 adb命令使用指南

文章目錄設備操作相關應用管理相關內存、進程相關Android四大組件相關文件相關其他 設備操作相關 命令 作用 adb devices 顯示連接到計算機的設備 adb shell 進入設備的shell界面,多個設

原创 Java 8 中lambda表達式的使用

Lambda表達式是Java SE 8中一個重要的新特性,需要Java 8或以上版本的jdk環境纔可使用 文章目錄lambda表達式簡介基本語法簡單例子基本例子foreach循環中使用lambda使用匿名內部類中使用lambda

原创 Android獲取棧頂的應用包名

有時候我們需要判斷棧頂的應用是否是我們的應用,於是獲取棧頂的應用包名的需求就出現了 在android5.0之前,系統有提供API藉口用於獲取TopActivity包名: ActivityManager manager = (Act

原创 撥號流程分析(第四篇)

本文基於Android 8.0 Telecom撥號流程2繼續分析CallsManager.placeOutgoingCall1. onServiceConnected方法中的setBinder2. handleSuccessfu

原创 撥號流程分析(第五篇)

本文基於Android 8.0 文章目錄IConnectionService服務的響應過程1. onBind服務被綁定的響應方法2. addConnectionServiceAdapter設置Adapter3. createCo

原创 撥號流程分析(第三篇)

本文基於Android 8.0 InCallService服務的響應過程InCallService服務的響應過程1. OnBind服務被綁定的響應方法2. InCallService的onBind流程3. setlnCallAd

原创 撥號流程分析(第一篇)

本文基於Android 8.0 文章目錄打開手機通話應用的撥號盤進入撥號界面DialtactsActivityplaceCall方法執行Dialer撥號流程圖備註 打開手機通話應用的撥號盤 我們使用 adb logcat -v

原创 撥號流程分析(第二篇)

本文基於Android 8.0 文章目錄ITelecomService接收撥號請求服務CallsManager處理撥號流程1. CallsManager.startOutgoingCall2. CallsManager.addC

原创 PhoneApp的啓動過程

本文代碼基於Android 9.0 文章目錄概述Telephony應用層PhoneApp簡介Phone相關業務Phone的作用PhoneApp的啓動流程Telephony框架層Telephony應用框架層啓動流程總結 概述 這裏講

原创 Android撥號通話流程_(Call對象的創建)

本文基於Android 9.0 接着上篇文章,我們這片文章主要分析Call對象的創建以及後續的邏輯處理流程 Call call = callsManager .startOutgoingCall(h