Android 開發(fā)者對(duì)于 GC 既熟悉又陌生尝艘,聽說過很多虎狼之詞饮六,對(duì)一些問題又不置可否文狱;今天聊聊 Android 里的 GC圆仔,如果你對(duì)于下面的問題有興趣又沒答案枯饿,那你應(yīng)該會(huì)...
Android 開發(fā)者對(duì)于 GC 既熟悉又陌生尝艘,聽說過很多虎狼之詞饮六,對(duì)一些問題又不置可否文狱;今天聊聊 Android 里的 GC圆仔,如果你對(duì)于下面的問題有興趣又沒答案枯饿,那你應(yīng)該會(huì)...
如果你是 Android 開發(fā)者番川,一定聽過“內(nèi)存抖動(dòng)”這個(gè)詞邑狸,如果高頻地申請(qǐng)較大尺寸的內(nèi)存懈糯,則可能導(dǎo)致短時(shí)間內(nèi)頻繁觸發(fā) GC,造成內(nèi)存的頻繁申請(qǐng)和釋放单雾,使用Profiler查...
用過aidl的同學(xué),可能見過下面的寫法: 不知道你有沒有好奇過這里的 in / out / inout 是什么意思呢硅堆? directional tag 去官網(wǎng)[https:/...
指出一個(gè)錯(cuò)誤: 所謂的directional tag(in/out/inout)是指數(shù)據(jù)流動(dòng)的方向屿储,這個(gè)概念與**客戶端或服務(wù)端沒有關(guān)系**。 只與數(shù)據(jù)提供方(caller)與數(shù)據(jù)接收方(callee)有關(guān)硬萍,當(dāng)client調(diào)用方法時(shí)扩所,client是caller,server是callee朴乖;當(dāng)server調(diào)用方法時(shí)祖屏,server是caller,clent是callee. >>>理由: >>>邏輯推理: 試想一個(gè)常見的場(chǎng)景: clent向server注冊(cè)一個(gè)callback, 方法調(diào)用的時(shí)候是server調(diào)client(原始類型默認(rèn)是in买羞,如果in表示數(shù)據(jù)從client流向server袁勺,可以推出:server調(diào)用onResult()時(shí)client拿不到數(shù)據(jù)),但client會(huì)拿不到回調(diào)數(shù)據(jù)嗎畜普?
interface IDTInCallback {
void onResult(int result);
}
>>> 理論分析: 對(duì)于client和server期丰,相同的aidl文件編譯后生成相同的java文件;caller調(diào)用Proxy.transact(); callee被回調(diào)Stub.onTransact();這個(gè)兩個(gè)方法在client和server都是一樣的吃挑,那么憑什么在client與server中的表現(xiàn)會(huì)不一樣钝荡? 當(dāng)然不需要苛責(zé)一篇5年前的文章,畢竟Android官網(wǎng)只說了一個(gè)"the way the data goes", google上也充斥著同樣的錯(cuò)誤舶衬。
你真的理解AIDL中的in埠通,out,inout么逛犹?前言 這其實(shí)是一個(gè)很小的知識(shí)點(diǎn)端辱,大部分人在使用AIDL的過程中也基本沒有因?yàn)檫@個(gè)出現(xiàn)過錯(cuò)誤梁剔,正因?yàn)樗。栽诖蟛糠值木W(wǎng)上關(guān)于AIDL的文章中舞蔽,它都被忽視了——或者并沒有荣病,但...
指出一個(gè)錯(cuò)誤: 所謂的directional tag(in/out/inout)是指數(shù)據(jù)流動(dòng)的方向,這個(gè)概念與**客戶端或服務(wù)端沒有關(guān)系**渗柿。 只與數(shù)據(jù)提供方(caller)與數(shù)據(jù)接收方(callee)有關(guān)个盆,當(dāng)client調(diào)用方法時(shí),client是caller朵栖,server是callee砾省;當(dāng)server調(diào)用方法時(shí),server是caller混槐,clent是callee. >>>理由: >>>邏輯推理: 試想一個(gè)常見的場(chǎng)景: clent向server注冊(cè)一個(gè)callback, 方法調(diào)用的時(shí)候是server調(diào)client(原始類型默認(rèn)是in,如果in表示數(shù)據(jù)從client流向server轩性,可以推出:server調(diào)用onResult()時(shí)client拿不到數(shù)據(jù))声登,但client會(huì)拿不到回調(diào)數(shù)據(jù)嗎?
interface IDTInCallback {
void onResult(int result);
}
>>> 理論分析: 對(duì)于client和server揣苏,相同的aidl文件編譯后生成相同的java文件悯嗓;caller調(diào)用Proxy.transact(); callee被回調(diào)Stub.onTransact();這個(gè)兩個(gè)方法在client和server都是一樣的,那么憑什么在client與server中的表現(xiàn)會(huì)不一樣卸察? 當(dāng)然不需要苛責(zé)一篇5年前的文章脯厨,畢竟Android官網(wǎng)只說了一個(gè)"the way the data goes", google上也充斥著同樣的錯(cuò)誤。
AIDL中的in坑质、out合武、inout的區(qū)別一、概念說明 定向tag是AIDL中語法的一部分涡扼,其中in稼跳、out、inout是三個(gè)定向tag吃沪。在官網(wǎng)上關(guān)于Android定向tag的定義是這樣的: All non-prim...
先說重點(diǎn),你的App能識(shí)別下面這個(gè)二維碼嗎票彪? 二維碼鏈接[https://upload-images.jianshu.io/upload_images/2366635-f82...
我們每天花很多時(shí)間盯著手機(jī)屏幕,不知道你有沒有好奇過: 手機(jī)屏幕上的這些東西是怎么顯示出來的降铸? 這時(shí)候來了一位Android程序員(當(dāng)然也可以是iOS或者是前端程序員)說: ...
熟悉Android自定義View的人大概都知道: 不要在onDraw里創(chuàng)建對(duì)象 大家在講到這里在旱,理由大概都是: onDraw()被調(diào)用快速高頻 -->快速頻繁申請(qǐng)內(nèi)存 ---...
開門見山 1. 多次寫入像素 在渲染不透明的像素時(shí)垮耳,只需要寫入一次 在渲染透明像素時(shí)颈渊,每個(gè)像素至少需要寫入兩次 第一次是之前的像素值 第二次把之前的顏色與設(shè)置的不透明度做混合...
今天聊聊TCP遂黍,老規(guī)矩,為了更符合讀者的思考邏輯俊嗽,文章依然由問題來組織: 在一個(gè)不可靠的網(wǎng)絡(luò)中雾家,如何做到可靠的傳輸? TCP的連接到底是啥? “三次握手”做了什么绍豁? “四次揮...
程序員一定被問過這個(gè)問題: 我在瀏覽器輸入一個(gè)網(wǎng)址,后面發(fā)生了什么竹揍? 有人要說了敬飒,這么老的問題也拿出來說: 就是HTTP協(xié)議呀,服務(wù)端也使用HTTP協(xié)議接收芬位,我們就是這么做的...
隨機(jī)存取存儲(chǔ)器(RAM)在任何軟件開發(fā)環(huán)境中都是寶貴的資源无拗,但是在物理內(nèi)存常常受到限制的移動(dòng)操作系統(tǒng)中變得更加珍貴。盡管Android運(yùn)行時(shí)(ART)和Dalvik虛擬機(jī)都會(huì)...
Android運(yùn)行時(shí)(ART)和Dalvik虛擬機(jī)使用分頁和內(nèi)存映射來管理內(nèi)存昧碉。這意味著應(yīng)用對(duì)內(nèi)存的任何修改都不會(huì)將內(nèi)存從RAM中換出(換出是指將內(nèi)存page拷貝到硬盤上英染,這...
(文中提到的倉庫特指git倉庫) 1. 背景介紹 開發(fā)中可能會(huì)遇到這樣的情況: 項(xiàng)目依賴一個(gè)library 這個(gè)library在多個(gè)項(xiàng)目中都要用到(符合封裝復(fù)用的原則) 我需...
多么刺耳的一個(gè)詞! 簡(jiǎn)介 原片 《剩女》Leftover Women 以色列導(dǎo)演(國(guó)外的導(dǎo)演常會(huì)有不同的視角)被饿,時(shí)長(zhǎng)85分鐘 內(nèi)容上四康,以三位"剩女"的故事貫穿全片,用細(xì)節(jié)拼出...
“Everything you see in Android that's not an app” SystemUI “那些你在Android中看到的狭握,但不是一個(gè)應(yīng)用的東西”...
對(duì)于學(xué)習(xí)英語闪金,我有過無數(shù)次的失敗經(jīng)驗(yàn),總結(jié)經(jīng)驗(yàn)后论颅,我認(rèn)為最好的方式就是直接使用英語哎垦,于是就有了這個(gè)【Using English】這個(gè)欄目,把我認(rèn)為好的英語文章翻譯成中文恃疯,從而...
TYPE_SYSTEM_ALERT 在 API 26 棄用撼泛,但是從 API23 開始就要手動(dòng)申請(qǐng)權(quán)限了,否則也會(huì)失敗