原创 Stetho工具介紹

stetho是Facebook推出的安卓APP網絡診斷和數據監控的工具,接入方便,功能強大,是開發者必備的好工具。 主要功能包括: 查看App的佈局 網絡請求抓包 數據庫、sp文件查看 自定義dumpapp插件 對於JavaSc

原创 代碼瀏覽工具OpenGrok

代碼瀏覽工具OpenGrok OpenGrok是一款強大的跨平臺代碼閱讀工具,許多在線源碼查看網站都是使用它來搭建的,比如著名的Android在線源碼查看網站androidxref. OpenGrok特性 OpenGro

原创 霍夫曼壓縮算法

霍夫曼壓縮算法 概述 霍夫曼壓縮算法的主要思想是用較少的比特表示出現頻率較高的字符,用較多的比特表示出現頻率較低的字符。如下圖所示, 實現 ①讀入完整的輸入流,並轉化爲字符數組。 ②計算每個字符出現的次數 ③構建Huffman

原创 simple-mock-api

項目中有一個Activiy需要輪詢多個接口,實時刷新數據。這裏很多業務邏輯都需要依賴當前的狀態,所以簡單寫了一個服務端,用於生成一些mock data,並且支持數據實時刷新。 項目地址:simple-mock-api 掛到騰訊雲上

原创 使用TraceView工具定位耗時操作

TraceView是DDMS中的工具,可以用來定位Android app中java方法的耗時操作。 使用方法 1.生成trace文件 Eclipse中生成trace文件的方法: Android Studio生成trace文

原创 JVM的簡單實現

本文介紹java虛擬機的一些知識,並以jvmgo爲例介紹一些虛擬機的簡單實現。jvmgo是用Go語言實現的java虛擬機,其作者說這個項目的主要目的是學習Go和JVM,所以只是一個toy,對於破除JVM的神祕感還是很有幫助的。 clas

原创 在macOS 10.12 上編譯 Android 5.1

官方文檔雖然也有介紹,但是macOS平臺上的編譯環境問題還存在很多坑。本文介紹下如何在在macOS 10.12 上編譯 Android 5.1源碼,導入源碼到Android Studio中,把系統燒錄到Nexus6手機中。 搭建編譯環境

原创 C++與彙編小結

C++與彙編小結 本文通過C++反編譯,幫助理解C++中的一些概念(指針引用、this指針、虛函數、析構函數、lambda表達式), 希望能在深入理解C++其它一些高級特性(多重繼承、RTTI、異常處理)能起到拋磚引玉的作用吧。 指針

原创 《一個操作系統的實現》筆記(2)--保護模式

保護模式 什麼實模式和保護模式 這是CPU的兩種工作模式,解析指令的方式不同。 在實模式下,16位寄存器需要通過段:偏移的方法才能達到1MB的尋址能力。 物理地址 = 段值 x 16 + 偏移 此時段值還可以看成地址的一部分,段值爲

原创 spdlog源碼學習

spdlog是一個用c++11實現的高性能日誌庫。 接入方便,功能豐富,代碼可讀性較高。 Features Very fast - performance is the primary goal Headers only, jus

原创 webview接入HttpDNS實踐

本文是對去年做的webview接入HttpDNS工作的一個總結,拖的時間有點久了。主要分享了GOT Hook webview中域名解析函數的方法。 HttpDNS簡介 首先簡單介紹下移動App接入HttpDNS後有什麼好處,這裏直接引用騰

原创 《一個操作系統的實現》筆記(7)--輸入/輸出系統(I/O)

鍵盤 很簡單,只要設置8259A芯片的鍵盤端口的handler處理函數就可以了。 鍵盤敲擊的過程 鍵盤編碼器,用於監視鍵盤的輸入,並把適當的數據傳送給計算機。 鍵盤控制器,用來接受和解碼來自鍵盤的數據,並與8259A以及軟件等通信。

原创 《一個操作系統的實現》筆記(6)--進程

我們可以把一個單獨的任務所用到的所有東西封裝在一個LDT中,這種思想是多任務處理的雛形。 多任務所用的段類型如下圖,使用LDT來隔離每個應用程序任務的方法,正是關鍵保護需求之一: 進程示意: 我們需要一個數據結構記錄一個進程的

原创 理解對C++裸指針釋放後重用的問題

本文將以Android 2.2-2.3上的一個zergRush漏洞爲例,分析指針釋放後重用的問題。 zergRush是Android 2.2-2.3上的一個漏洞,主要問題就在於指針的釋放後重用。 zergRush利用了libsysuti

原创 Stetho的通信原理

Stetho簡介 stetho是Facebook推出的安卓APP網絡診斷和數據監控的工具,接入方便,功能強大,是Android開發者必備的友好工具。 主要功能包括: 實時查看App的佈局 網絡請求抓包 數據庫、SharedPrefer