一、符號(hào)表 1、概念:debugger Symbols 的簡(jiǎn)稱。符號(hào)表就是指在Xcode項(xiàng)目編譯后,在編譯生成的.app的同級(jí)目錄下生成的同名的.dSYM文件。符號(hào)表是內(nèi)存地...
一、符號(hào)表 1、概念:debugger Symbols 的簡(jiǎn)稱。符號(hào)表就是指在Xcode項(xiàng)目編譯后,在編譯生成的.app的同級(jí)目錄下生成的同名的.dSYM文件。符號(hào)表是內(nèi)存地...
Widget、Element和RenderObject Widget Widget 是用戶頁(yè)面的描述,表示了Element的配置信息,F(xiàn)lutter頁(yè)面都是由各種各樣的Wid...
起因 前段時(shí)間在群里看到群友發(fā)了一個(gè)油管的鏈接[https://www.youtube.com/watch?app=KWnnhv&v=UtOrHj83hSQ%3DcdKfd9...
設(shè)置圓角 1.ElevatedButton 設(shè)置樣式需要通過(guò)buttonStyle設(shè)置buttonStyle可以設(shè)置的屬性有: 這些屬性在設(shè)置的屬性在設(shè)置的時(shí)候需要用到Mat...
Toast在Android上是最常用的提示組件了,它的優(yōu)勢(shì)在于靜態(tài)調(diào)用、全局顯示,可以在任意你想要的地方調(diào)用他而絲毫不影響界面的布局,調(diào)用簡(jiǎn)單程度與Logger的調(diào)用不相上下...
Flutter 1.17 對(duì)比上一個(gè)穩(wěn)定版本,更多是帶來(lái)了性能上的提升,其中一個(gè)關(guān)鍵的優(yōu)化點(diǎn)就是 Navigator 的內(nèi)部邏輯,本篇將帶你解密 Navigator 從 1....
背景 花了點(diǎn)時(shí)間分析了下libffi的調(diào)用流程,做個(gè)總結(jié)。 什么是libffi libffi是ffi的主流實(shí)現(xiàn)方式,其主要是用C和匯編來(lái)實(shí)現(xiàn)的。 原理和用法市面上已經(jīng)很多,下...
什么是VM Tracker VM Tracker是Xcode Instruments自帶的一個(gè)內(nèi)存分析工具,可以幫助你快速查看虛擬內(nèi)存塊的用量狀態(tài)以及根據(jù)虛擬內(nèi)存塊的tag進(jìn)...
Git Flow 的概念 在使用Git的過(guò)程中如果沒(méi)有清晰流程和規(guī)劃,否則,每個(gè)人都提交一堆雜亂無(wú)章的commit,項(xiàng)目很快就會(huì)變得難以協(xié)調(diào)和維護(hù)。Git版本管理同樣需要一個(gè)...
本文導(dǎo)讀:虛擬內(nèi)存以及虛擬內(nèi)存的remap機(jī)制,以及通過(guò)remap機(jī)制來(lái)實(shí)現(xiàn)通過(guò)靜態(tài)指令來(lái)構(gòu)造thunk代碼塊。 ??Thunk程序的實(shí)現(xiàn)原理以及在iOS中的應(yīng)用 入口處。 ...
相信大家在學(xué)習(xí)C語(yǔ)言的時(shí)候,malloc是最早遇到的幾個(gè)方法之一,這里就來(lái)深入的了解下,macOS/iOS中用戶空間的內(nèi)存分配。 引言 首先,我們來(lái)看幾個(gè)有意思的例子,以下幾...
前言 眾所周知,使用runtime的提供的接口,我們可以設(shè)定原方法的 IMP ,或交換原方法和目標(biāo)方法的 IMP ,以完全代替原方法的實(shí)現(xiàn),或?yàn)樵瓕?shí)現(xiàn)前后相當(dāng)于加一段額外的代...
GCC編譯器提供了 -fomit-frame-pointer 和 -fno-omt-frame-pointer 兩個(gè)相對(duì)的編譯選項(xiàng)。 GCC手冊(cè)[1][#fn1]里對(duì) -fo...
模型樹(shù)和呈現(xiàn)樹(shù) CoreAnimation作為一個(gè)復(fù)合引擎,將不同的視圖層組合在屏幕中,并且存儲(chǔ)在圖層樹(shù)中,向我們展示了所有屏幕上的一切。整個(gè)過(guò)程其實(shí)經(jīng)歷了三個(gè)樹(shù)狀結(jié)構(gòu),才顯...
? Source1 :基于mach_Port的,來(lái)自系統(tǒng)內(nèi)核或者其他進(jìn)程或線程的事件,可以主動(dòng)喚醒休眠中的RunLoop(iOS里進(jìn)程間通信開(kāi)發(fā)過(guò)程中我們一般不主動(dòng)使用)。m...
前言 上片文章分析了GCD隊(duì)列和函數(shù)的使用方式、串行隊(duì)列和并發(fā)隊(duì)列的創(chuàng)建、同步函數(shù)和異步函數(shù)底層執(zhí)行流程、串行隊(duì)列的死鎖、GCD單例的實(shí)現(xiàn)流程等。這篇文章我們繼續(xù)探究disp...
一、柵欄函數(shù) CPU的亂序執(zhí)行能力讓我們對(duì)多線程的安全保障的努力變得異常困難。因此要保證線程安全,阻止CPU換序是必需的。遺憾的是,現(xiàn)在并不存在可移植的阻止換序的方法。通常情...
當(dāng)向ArrayList中添加和刪除元素時(shí)都需要進(jìn)行元素的移動(dòng),當(dāng)添加和刪除的是動(dòng)態(tài)數(shù)組的頭部元素,需要將數(shù)組中所有元素進(jìn)行移動(dòng),其最壞情況的復(fù)雜度為O(n)。那么能不能在添加...
1. 指針類型 id是指向Objective-C對(duì)象的指針。 void *是任何東西的指針(無(wú)類型指針)。是“對(duì)帶有未類型化/未知內(nèi)容的隨機(jī)塊內(nèi)存的引用”您可以使用void...
iOS中會(huì)經(jīng)常使用到靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù),尤其稍大點(diǎn)的項(xiàng)目,有一些人對(duì)到底是推薦使用靜態(tài)庫(kù)還是動(dòng)態(tài)庫(kù)存在一些疑點(diǎn)。這里鼓勵(lì)跟蘋(píng)果爸爸走,盡可能的使用靜態(tài)庫(kù), 下面會(huì)重點(diǎn)介紹靜態(tài)庫(kù)對(duì)...