FrameWork

Android 進程啓動流程(App 啓動)

簡述 Android 進程啓動的流程,結合執行圖,描述了主要執行的方法。

android

Android IPC入門

主要幫助初學者理解Android跨進程通訊的幾種方式,分別是:Bundle、文件共享、Messenger、AIDL、socket,以及Android和Java序列化知識。

git

Android 後臺殺死系列之三:LowMemoryKiller 原理(4.3-6.0)

本篇是 Android 後臺殺死系列的第三篇,前面兩篇已經對後臺殺死注意事項,殺死恢復機制作了分析,本篇主要講解的是 Android 後臺殺死原理。相對於後臺殺死恢復,LowMemoryKiller 原理相對簡單,而且在網上仍是能找到很多資料的,不過,因爲 Android 不一樣版本在框架層的實現有一些不一樣,網上的分析也可能是針對一個 Android 版本,本文簡單作了如下區分對比。LowMemoryKiller(低內存殺手) 是 Andorid 基於 oomKiller 原理所擴展的一個多層次 oomKiller,OOMkiller(Out Of Memory Killer) 是在 Linux 系統沒法分配新內存的時候,選擇性殺掉進程,到 oom 的時候,系統可能已經不太穩定,而 LowMemoryKiller 是一種根據內存閾值級別觸發的內存回收的機制,在系統可用內存較低時,就會選擇性殺死進程的策略,相對 OOMKiller,更加靈活。在詳細分析其原理與運行機制以前,不妨本身想一下,假設讓你設計一個 LowMemoryKiller,你會如何作,這樣一個系統須要什麼功能模塊呢?

程序員

從Android源碼的角度分析Binder機制

今天想要和你們一塊兒分享的是Android中的Binder機制,講真這絕對是Android中很深奧的一個點,若是可以完全弄懂它,這對初級程序員來講絕對會是一件具備里程碑意義的事件,固然我也研究了許久,終於琢磨出點因此然,因此就拿出來和你們一塊兒分享分享。另外這篇文章將會經過一個小實例來說解Binder,你們能夠訪問https://github.com/Wensibob/A... ,也歡迎你們fork和star。話很少說讓咱們開始吧!

github

詳解 Message,Handler,MessageQueue,Looper 的關係

一張圖帶你詳細瞭解 Message,Handler,MessageQueue,Looper 之間的關係,帶你瞭解 Handler 處理消息的流程。

面試

Android 窗口是如何建立的?

在WmS看來窗口並非Window類,而是一個View類。WmS收到用戶消息後,須要把消息發送到窗口,View類其實並不能直接接受傳遞過來的消息,而接受消息的必須是IWindow類,實現IWindow類的是ViewRoot.W類,每個W內部都包含了一個View變量。 WmS並…

性能優化

從getSystemService()開始,開擼Binder通信機制

從getSystemService()開始,一步步深刻到Binder通信機制的核心。

app

Android解析ActivityManagerService(一)AMS啓動流程和AMS家族

相關文章 Android系統啓動流程系列 Android應用進程系列 Android深刻四大組件系列 前言 此前在Android系統啓動流程、應用進程以及深刻四大組件這三個系列文章中,都說起到了AMS,但都沒有系統的來說解它,本文就以AMS爲主來進行講解,其中會有一些知識點與這些…

框架

DexClassLoader熱修復的入門到放棄

前提 寫這篇文章的目的也是爲了瞭解android源碼及hack技術,讀了這篇文章相信你也能夠了解到Dalvik的工做流程,apk的生成過程,及build.gradle中plugin中ApplicationPlugin的Task有哪些,如何經過hack技術來完成hotfix。有興趣…

socket

Android應用啓動過程-Launcher源碼淺析


Android FrameWork 學習(二)Android 系統源碼調試

爲了更進一步地學習跟研究 Android 系統源碼,今天咱們來說講如何進行 Android 系統源碼的調試,只有學會了如何進行系統源碼的調試,才能幫助咱們更高效地閱讀跟理解源碼。

oop

Android View 的繪製流程

重點講 measure、layout、draw 過程

[[譯]Android Application 啓動流程分析](https://juejin.im/entry/582c2...

爲了便於閱讀, 應邀將 Android App 性能優化系列, 轉移到掘金原創上來. 掘金的新出的 "收藏集" 功能能夠用來作系列文集了. 這是一篇關於 Android Application 啓動流程分析的譯文, 爲咱們後面講 App 啓動優化打個基礎. 譯者注: 原文分紅兩個部分, 連接以下:…

深刻Android源碼系列(二) HOOK技術大做戰

本文講解內容有

hook技術原理探究
hook本進程方法
hook跨進程的系統調用,方法
so注入
GOT完成so方法hook
ELF文件頭信息


google 分屏 橫屏模式 按 home 鍵界面錯亂故障分析(一)

分屏的整個流程分析

調試 Framework,讓一切瞭然於胸

本文會詳細介紹如何使用 Android Studio 調試 Framework層的Java代碼,掌握了這一技巧,Android 開發中任何 Java 層的問題咱們都可以順藤摸瓜,經過實際觀察 Framework 層的運做來尋求解決方案。

Android藍牙那點事——深刻了解Android藍牙Bluetooth《進階篇》

在 深刻了解Android藍牙Bluetooth——《基礎篇》一篇中咱們對藍牙的各個版本的有了一個認識,藍牙版本的歷程及其優劣式介紹。那麼接下來我們就深刻一點繼續開車進入BLE的進及篇章。 BLE藍牙設備鏈接讀取的順序: Markdown 藍牙BLE4.x BLE分爲三部分: S…

如何調試Android Framework

Linus有一句名言廣爲人知:Read the fucking source code. 但其實,要深刻理解某個軟件、框架或者系統的工做原理,僅僅「看」代碼是遠遠不夠的。就拿Android Framework來講,整個代碼量很是大不說,那些個動輒幾萬行的類如何去理解?因此我今天要

Android 走進源碼告訴你 app 是如何被啓動的

你們都知道 Android 是基於 Linux 系統的,而在 Linux 中,全部的進程都是由 init 進程直接或者是間接 fork 出來的,當我開機的時候 init 進程就會 fork 出一個 Android 的第一個新的進程
Zygote, 中文翻譯過來要」 受精卵」,一個頗有意識的名字。爲何這麼說呢,當咱們 Zygote 進程跑起來後,Android 爲了實現實現資源共用和更快的啓動速度,經過 Zygote 進程直接去 fork 出一些子進程,這就是爲何要」 受精卵」 的緣由,也就是咱們的 app 所有都是基於 Zygote 上的 ,沒有 Zygote 就沒有咱們,當 Zygote 初始化完成以後,首先會 fork 它的第一個子進程 SystemServer, 這個類很是的重要,爲何這麼說呢?由於系統裏面重要的服務都是在這個進程裏面開啓的,好比 ActivityManagerService、PackageManagerService、WindowManagerService 等等,有木有以爲似曾相識

Android Transition Framework 源碼分析

過渡動畫框架,你不得不知道的東西

從源碼的角度解析Handler、Looper、Message和MessageQueue

雖然很基礎的一個東西,然是最近面試中仍是經常最被問到,並且都是到源碼層,所以決定跟着源代碼走一遍。

深刻理解 Handler 機制

從源碼的角度去更深層次理解Handler的實現機制,而且糅合了ThreadLocal、Looper、MessageQueue等知識點,一篇文章便可全方位理解通透。

android dumpsys 快速入門

開啓輕量的講解模式,歡迎圍觀學習。

Activity中的multiprocess="true"??

震驚!能夠在Activity中設置multiprocess="true"??究竟是什麼意思!?

Android 系統及應用啓動流程

Android 是一個基於 Linux 的系統,在按下電源鍵的那一刻,系統便啓動了,那麼在按下電源鍵以後,系統是如何啓動的呢?
帶着這個問題去探究能夠知道,在底層中電源鍵按下後,引導芯片將開始從預約義的地方開始執行,加載引導程序到 RAM,進而執行引導程序,通常引導程序爲針對主…

從ADIL跨進程綁定通信再探Service知識

咱們就能夠經過AIDL來輔助進行綁定,從而實現Activity跨進程操做Service

Android 7.0 中的多窗口實現解析

在以往的 Android 系統上,全部 Activity 都是全屏的,若是不設置透明效果,一次只能看到一個 Activity 界面。
可是從 Android N(7.0)版本開始,系統支持了多窗口功能。在有了多窗口支持以後,用戶能夠同時打開和看到多個應用的界面。而且系統還支持在多個應用之間進行拖拽。在大屏幕設備上,這一功能很是實用。

Android 後臺殺死系列之一:FragmentActivity 及 PhoneWindow 後臺殺死處理機制

App 在後臺久置後,再次從桌面或最近的任務列表喚醒時常常會發生崩潰,這每每是 App 在後臺被系統殺死,再次恢復的時候遇到了問題,而在使用 FragmentActivity+Fragment 的時候會更加頻繁。好比,若是 Fragment 沒有提供默認構造方法,就會在重建的時候由於反射建立 Fragment 失敗而崩潰,再好比,在 onCreate 裏面 new 一個 FragmentDialog,而且 show,被後臺殺死後,再次喚醒的時候,就會 show 兩個對話框,這是爲何?其實這就涉及了後臺殺死及恢復的機制,其中涉及的知識點主要是 FragmentActivity、ActivityManagerService、LowMemoryKiller 機制、ActivityStack、Binder 等一系列知識點。

Android解析WindowManagerService(一)WMS的誕生

此前我用多篇文章介紹了WindowManager,這個系列咱們來介紹WindowManager的管理者WMS,首先咱們先來學習WMS是如何產生的。本文源碼基於Android 8.0,與Android 7.1.2相比有一個比較直觀的變化就是Java FrameWork採用了Lam…

Android Bluetooth Low Energy(BLE) 開發

Android藍牙低功耗開發

View 的工做流程 源碼分析

View 的工做流程 源碼分析

Android 繪製流程

Android 繪製流程

Android BLE基礎框架全新改版

Android BLE基礎操做框架,基於回調,操做簡單。包含掃描、多鏈接、廣播包解析、服務讀寫及通知等功能。 支持配置鏈接和操做數據重試次數以及重試間隔時間。 打造該庫的目的是爲了簡化藍牙設備接入的流程。該庫是 BLE 操做的基礎框架,只處理 BLE 設備通訊邏輯,不包含具體的…

(4.1.37.1)深刻理解setContentView過程和View繪製過程

一圖道盡整個過程

深刻解析AIDL的實現:Messenger

Messenger能夠翻譯爲信使,顧名思義,經過它能夠在不一樣進程中傳遞Message對象,在Message中放入咱們須要傳遞的數據,就能夠輕鬆地實現數據的進程間傳遞了。Messenger是一種輕量級的IPC方案,它是AIDL在Android中的一種經典實踐。

從源碼的角度看Activity是如何啓動的

前言 終於申請成爲掘金的專欄啦!之後就能夠在這裏與你們一塊兒分享知識咯!!!仍是但願你們訪問個人我的博客 ,這篇文章的原文地址在這裏 。 今天想與你們一塊兒分享的是Activity。咱們平時接觸的最多的就是Activity了,做爲四大組件中最爲重要的老大,Activity到底是如何啓…

Android 啓動過程解析

綜合了多篇有關Android系統SystemUI介紹的博客,再加上筆者本身的理解,採用文字+代碼+視圖的方式全面解析SystemUI的啓動流程

Android 7.0 SystemUI 之啓動和狀態欄和導航欄簡介

PS:已同步至個人博客 點擊打開 1、SystemUI 是什麼 首先SystemUI 是一個系統應用,apk路徑位於/system/priv-app 源碼路徑位於:/framework/base/packages/SystemUI 它負責的功能以下: 狀態欄信息的展現:好比電量…

相關文章
相關標籤/搜索