摘要:
1.Zygote啟動SystemServer進程 在上一篇文章中我們講到在ZygoteInit.java的startSystemServer函數(shù)中啟動了SyetemServer進程,如下所示。 frameworks/base/core/java/com/android/internal/os/Zyg
閱讀全文
摘要:
我們來學習Java虛擬機的結構原理與運行時數(shù)據(jù)區(qū)域。 1.Java虛擬機概述 Oracle官方定義的Java技術體系主要包括以下幾個部分: Java程序設計語言 各種平臺的Java虛擬機 Class文件格式 Java API類庫 第三方Java類庫 可以把Java程序設計語言、Java虛擬機和Jav
閱讀全文
摘要:
1.Zygote簡介 在Android系統(tǒng)中,DVM(Dalvik虛擬機)、應用程序進程以及運行系統(tǒng)的關鍵服務的SystemServer進程都是由Zygote進程來創(chuàng)建的,我們也將它稱為孵化器。它通過fock(復制進程)的形式來創(chuàng)建應用程序進程和SystemServer進程,由于Zygote進程在啟
閱讀全文
摘要:
一、作用 適配器模式(Adapter):將一個類的接口轉換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 二、適用場景 1. 業(yè)務的接口與工作的類不兼容,(比如:類中缺少實現(xiàn)接口的某些方法)但又需要兩者一起工作 2. 在現(xiàn)有接口和類的基礎上為新的業(yè)務需求提供接口
閱讀全文
摘要:
整體流程大致如下: 1.init簡介 init進程是Android系統(tǒng)中用戶空間的第一個進程,作為第一個進程,它被賦予了很多極其重要的工作職責,比如創(chuàng)建zygote(孵化器)和屬性服務等。init進程是由多個源文件共同組成的,這些文件位于源碼目錄system/core/init。本文將基于Andro
閱讀全文
摘要:
1.共享內存和消息傳遞 線程之間的通信機制有兩種:共享內存和消息傳遞;在共享內存的并發(fā)模型里,線程之間共享程序的公共狀態(tài),線程之間通過寫-讀內存中的公共狀態(tài)來隱式進行通信。在消息傳遞的并發(fā)模型里,線程之間沒有公共狀態(tài),線程之間必須通過明確的發(fā)送消息來顯式進行通信。 同步是指程序用于控制不同線程之間操
閱讀全文
摘要:
在現(xiàn)實中,需要線程之間的協(xié)作。比如說最經典的生產者-消費者模型:當隊列滿時,生產者需要等待隊列有空間才能繼續(xù)往里面放入商品,而在等待的期間內,生產者必須釋放對臨界資源(即隊列)的占用權。因為生產者如果不釋放對臨界資源的占用權,那么消費者就無法消費隊列中的商品,就不會讓隊列有空間,那么生產者就會一直無
閱讀全文
摘要:
一.Callable與Runnable 先說一下java.lang.Runnable吧,它是一個接口,在它里面只聲明了一個run()方法: public interface Runnable { public abstract void run(); } 由于run()方法返回值為void類型,所以
閱讀全文
摘要:
1.new Thread的弊端如下: a. 每次new Thread新建對象性能差。 b. 線程缺乏統(tǒng)一管理,可能無限制新建線程,相互之間競爭,及可能占用過多系統(tǒng)資源導致死機或oom。 c. 缺乏更多功能,如定時執(zhí)行、定期執(zhí)行、線程中斷。 相比new Thread,Java提供的四種線程池的好處在于
閱讀全文
摘要:
https://blog.csdn.net/H176Nhx7/article/details/78139406
閱讀全文