原创 JNI入門教程:最小環境HelloWorld實戰

JNI是Android應用開發中不太常涉及的技術,但在Framework層中卻被廣泛使用。作爲一名Android應用開發人員,學習JNI知識,對理解整個系統原理還是有很大幫助的。 學習JNI有很多途徑: 可以直接閱讀Framew

原创 JNI學習:在Java中保存Native對象引用

在學習Android Framework源碼時,發現部分類中聲明瞭這個變量: private int mPtr; // used by native code 那麼native層是怎麼使用這個變量的呢? 以Framework中的

原创 Android Studio導出jar包

首先來看一下Android Studio默認Project中的app module,以及可創建的Android Library以及Java Library兩種module的差異: module gradle plugin 生

原创 歸併排序

歸併排序的步驟就是分組->合併,這兩步均是遞歸進行,直到所操作的子組僅有一個元素爲止。 例如一個數組: 6, 3, 1, 9, 2, 7, 4, 5 首先分成兩組: [6, 3, 1, 9] [2, 7, 4, 5] 對於左邊,再

原创 快速排序

快速排序的思路是選定一個標誌元素,將比這個元素小的所有元素放在一邊,比其大的放在另外一邊。 然後發分別對兩個子數組進行同樣的操作,直到子數組元素數爲1時,整體數組就排好序了。 package test.sort; public

原创 Docker學習筆記

最近學習了一下Docker。 原本是想在Mac上搭建一個網頁服務器,用homebrew裝了一些需要的軟件包,但發現配置起來還是比linux麻煩一些;但又不想裝類似virtualbox這樣的虛擬機,下載鏡像安裝一遍也挺麻煩,而且v

原创 冒泡排序

冒泡排序的思路很簡單——從頭至尾遍歷數組元素,若前一項大於(或小於)後一項,則交換相鄰兩項。單次遍歷整個數組可將某一個元素排列到正確位置,因此需要遍歷元素數量n次。在代碼中體現也就是內外兩層循環,內層循環負責遍歷中兩兩元素的交換操

原创 Android Studio中的多渠道包開發

今天來看一下Android Studio中的多渠道打包功能。主要應用到了Gradle中的Product Flavors配置。 首先建立一個普通的APP工程。創建好後默認的結構如下: 可以看到默認包含main這一主幹版本。

原创 Android.mk學習筆記

LOCAL_PATH := $(call my-dir) 這條語句出現在Android.mk最開始。由於我們將所有源碼等文件都存在了當前目錄或子目錄,因此調用my-dir這個函數來告知編譯器所編譯的模塊在mk所在當前目錄下。 LO

原创 MacOS下編譯Android源碼報錯:Can not find SDK 10.6 at

Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdk 在source ./build/evnsetup.sh後執行lunch出現。 這個問題出錯的log如下: andro

原创 Android Studio中的單元測試

在最新版Android Studio(2.1)中,已經可以方便的使用Mockito進行含有android api的單元測試了。因此可以更好的進行敏捷開發與持續集成測試。 創建單元測試 在Android Studio中新建工程,目錄

原创 Service Intent must be explicit錯誤

在Android 5.0以上版本,Intent必須聲明爲顯式,否則會報Service Intent must be explicit錯誤,解決的方法很簡單,在Intent中設定需要響應此Intent的包信息就可以了: Intent

原创 Android SDK中的自動化測試

Android中的測試手段非常豐富。通常上,按測試運行環境來劃分,可以分爲本地單元測試與Instrument測試: 運行環境 測試類型 PC機 本地Unit Test Android手機或模擬器 Instrumen

原创 Android中的IPC——AIDL方式

AIDL是實現Android中IPC的一種方式。 通過AIDL我們將各種通信操作以接口方式進行定義,Android SDK則會按照AIDL的規則將AIDL編碼成java類嵌入到應用中,然後我們就可以在APP運行時以調用函數的形式

原创 iOS中異步回調的單元測試方法

在XCode6以上版本中,蘋果添加了用於異步回調測試的api,因此不用像舊版本那樣,發起異步調用後通過循環查詢標誌位,來檢查異步回調函數的調用了。 在新版本中直接使用XCTestExpectation的API即可實現這一功能。