原创 拓撲排序的算法實現

一、定義 對一個有向無環圖(Directed Acyclic Graph簡稱DAG)G進行拓撲排序,是將G中所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,若邊<u,v>∈E(G),則u在線性序列中出現在v之前。通常,這樣的線性序列

原创 Android啓動過程性能分析工具Bootchart

一、簡介 Bootchart是一個用於GNU/Linux啓動過程的性能分析和可視化呈現的開源軟件工具。在系統啓動過程中,自動收集資源利用率和進程信息,然後生成PNG、SVG或EPS編碼的圖表。 Android系統已經集成了Bootchar

原创 圖的表示及遍歷

一、圖的表示 1.鄰接矩陣 缺點是比較浪費空間,但是優點是查詢效率高,而且方便矩陣運算。 a.有向圖 頂點vi的度是鄰接矩陣中的第i行元素之和。 對稱矩陣,可壓縮存儲,有n個結點的無向圖需要的存儲空間爲n(n+1)/2。 b.無向圖

原创 Android單元測試框架-設計思路

一、測試金字塔 小型測試是指單元測試,用於驗證應用的行爲,一次驗證一個類。 中型測試是指集成測試,用於驗證模塊內堆棧級別之間的交互或相關模塊之間的交互。 大型測試是指端到端測試,用於驗證跨越了應用的多個模塊的用戶操作流程。      

原创 Android中assets各級目錄的遍歷及小結

一、文件特性 單個文件需要小於1M 文件只能讀,不能做寫操作 自帶隱藏的3個文件夾資源:images 、sounds 、webkit 不會被映射到R中,不能通過R.XXX.ID的方式訪問,僅能通過AssetManager讀取 打包進apk

原创 RemoteViews的作用及原理

一、RemoteViews是什麼?         RemoteViews表示遠程View,用於跨進程更新UI,主要用於系統通知欄(Notification)和桌面小部件(App Widget)中。RemoteViews沒有繼承View,

原创 PrecomputedTextCompat用法及原理

一、官方介紹        文本展示非常複雜,其涵蓋的特性有:多種字體、行間距、字間距、文本方向、斷行、字符連接等。爲了測量及佈局給定文本,TextView 必須做很多工作,例如讀取字體文件、查找字形、決定形狀、測量邊界框以及將文本緩存在

原创 Android 如何完整的獲取到用戶已安裝應用列表

接到產品經理的預研需求,說希望獲取用戶已安裝應用列表。這個問題應該不難,只要是要把相關的知識點整理和驗證一下。    對於獲取用戶已安裝應用列表,我個人是很熟悉的,因爲我的華爲手機上,手機管家天天會在通知欄彈出”xxx應用嘗試獲取用戶已安

原创 Hybrid APP之Native和H5頁面交互原理

前言 參考來源 前人栽樹,後臺乘涼,本文參考了以下來源 JSBridge-Web與Native交互之iOS篇Ios Android Hybrid app 與 Js BridgeHybrid APP架構設計思路Android4.2下

原创 RemoteViews佈局和類型限制源碼分析

一、官方文檔 二、類的定義 三、RemoteView註解         在RemoteViews源碼中聲明瞭如下註解:         從註解類型來看爲運行時註解,作用於類或接口,結合註釋可知此註解用於View的子類,用來標識該V

原创 CentOS如何查看、殺掉進程

一、根據進程名過濾出信息 二、確認進程的詳細信息 三、殺掉進程

原创 Android代碼加固技術

一、 對抗反編譯工具 二、 對抗apk重打包 三、 對抗安卓模擬器 四、 對抗IDA調試so

原创 Android應用安全之JNI混淆

簡介         JNI全稱爲Java Native Interface,是使Java方法與C\C++函數互通的一座橋樑。通俗的講,它的作用就是使Java可以調用C\C++寫的函數、使C\C++可以調用Java寫的方法。 特點 1、性

原创 JNI函數的2種書寫方式

一、靜態註冊 原理: 根據函數名來建立 java 方法與 JNI 函數的一一對應關係; 以Java爲前綴,並且用“_”下劃線,將包名、類名以及native方法名連接起來; 實現流程: 編寫 java 代碼; 利用 javah 指令生成對應

原创 Android應用上架變更

符合 Google Play 的目標 API 級別要求 https://developer.android.com/distribute/best-practices/develop/target-sdk?hl=zh-cn   華爲移動