原创 NDK學習(一)向現有安卓項目加入jni

做安卓半年了,用的都是java,目前老大分配了一個任務,在現有項目上添加圖片的濾鏡功能,使用濾鏡一般計算量比較大,需要用到NDK,也就是C相關的知識,雖然之前學過C/C++,但還沒用到過項目中,尤其還要用到安卓中,這一篇算是爲ND

原创 NDK學習(六)C++的虛函數實現原理

談到C和C++最大的不同之處,恐怕就是C++的多態了,通過一個基類指針調用函數的時候,能夠知道根據具體的對象去調用合適的函數,如果是Java的話,因爲有jvm的存在,我們可以腦補出這樣一個畫面,基類指針p指向一個對象,首先我們可以

原创 NDK學習(三)從Parcel源碼學習如何創建自己的JNI層對象

上一篇中學到了jni和java中的類型和函數是如何對應的,這一篇講一下如何定義自己的Java類型,使得JNI層也能對應上。 1、jni函數的靜態註冊和動態註冊 java函數與jni函數能夠對應起來是jvm在其中做工作的,之前我們已

原创 NDK學習(七)實現馬賽克功能

之前在網上查找如何對圖片進行打碼操作,大多數的實現方式都是利用高斯模糊之類的方法來實現打碼,最終在GPUImage裏面找到了像素塊那種形式的馬賽克,不過GPUImage是用opengl實現的,因此在這裏使用c來實現馬賽克功能。 像

原创 安卓 TextView顯示溫度符號

在Java中有一個用於攝氏度的Unicode符號: \u2103 。 對於華氏你可以使用\u2109 。 示例代碼: temperatureValue.setText((result) + " \u2109"); 如果你只需

原创 爲什麼ButterKnife需要在註解中使用R2

在多模塊中使用ButterKnife,在bindView的時候需要使用R2而不是R,這是什麼原因呢?這需要了解多模塊項目是如何構建的。在構建多模塊的時候,首先單獨編譯每一個模塊下面的文件,然後根據每個模塊編譯之後的產物進行打包,其

原创 編譯時註解代碼的編寫

現在很多三方庫使用了apt技術,使得我們能夠在編譯的時候就獲得代碼的信息,從而能夠根據現有的代碼生成一些新的代碼,比如ButterKnife就會生成Activity,從而免去了去寫重複的findViewById函數;Glide在編

原创 安卓手勢處理(一)view的位置信息

系列文章: 安卓手勢處理(一)view的位置信息 安卓手勢處理(二) MotionEvent 安卓手勢處理(三)之實現圖片的放大和縮小 安卓手勢處理(四)之Fling 安卓手勢處理(五)案例 最近需要爲項目加入手勢處理,所以就有了

原创 NDK學習(二)認識jni的類型

C要和Java進行交互,那麼他們之間必然要進行數據的交流,那麼C中如何獲取到Java中的數據呢?這就是本篇需要介紹的核心。 推薦一個網站https://docs.oracle.com/javase/7/docs/technotes

原创 NDK學習(五)C++的sizeof操作符

上一篇中已經提到了由於cpu的尋址特性,導致只能讀取某些地址的數據,因此就有了一個對齊的概念,編譯器會爲我們的程序中私自添加一些填充數據,使得對象在內存中能夠對齊,從而獲取更佳的存取速度。 C++中獲取一個對象大小的操作符,之所以

原创 安卓動畫(四)Recyclerview ItemAnimator(下)

安卓動畫(三)Recyclerview ItemAnimator(上) 這一篇就實現下面兩種效果: demo地址:https://github.com/whoami-I/Animation 實現之前,就是要對系統爲我們實現的D

原创 NDK學習(四)C++開篇

之前學習過C++,但是幾乎都忘的差不多了,連語法好多都忘了,因此就C++幾個重要的點複習一下,順便深入C++的內存模型來探討C++和C有什麼區別和共同點,C++的多態實現和Java的多態有什麼不同,另外就C++的一些專有特性寫一些

原创 Handler、Looper、MessageQueue、Thread一探究竟

先說Handler、Looper、MessageQueue,這三者之間的關係還是比較簡單的,Looper是消息的執行者,可以認爲是代碼的執行者,因此這個類和線程結合最緊密;MessageQueue就沒什麼說的了,就是存放消息的隊列

原创 安卓手勢處理(三)之實現圖片的放大和縮小

系列文章: 安卓手勢處理(一)view的位置信息 安卓手勢處理(二) MotionEvent 安卓手勢處理(三)之實現圖片的放大和縮小 安卓手勢處理(四)之Fling 安卓手勢處理(五)案例 這一篇來實現下面的效果: 其實上面的

原创 安卓動畫(一)補間動畫

最近項目上要實現一個動畫,不過這個動畫做起來比較難,一是要跟隨手勢,另外涉及到多個view,不能通過簡單的屬性動畫實現,目前思路應該可以用Scene動畫實現,但是又要做到跟手這就比較麻煩了。不過還好這個需求不急,趁這段時間把動畫的