原创 排序算法之快速排序詳解(附示例代碼)

1.快速排序簡介 對於包含n個數的輸入數組來說,快速排序是一種最壞情況時間複雜度爲O(n的平方)的排序算法.雖然最壞情況時間複雜度很差,但是快速排序通常是實際排序應用中最好的選擇.因爲他的平均性能非常好,它的期望時間複雜

原创 WebView使用與JavaScript交互詳解(附完整Demo代碼)

最近項目中需要用到與HTML5交互,也就是WebView的使用,與JS的交互肯定必不可少.開始寫項目之前寫了個測試Demo,成功完成了Java與JS的相互調用.先看效果圖 下面上完整代碼: 首先在Module下的asse

原创 排序算法之歸併排序詳解(附Demo)

1.歸併排序算法原理 我們學習歸併排序算法之前需瞭解下分治法的概念,歸併排序是完全遵循分治模式的. 分治法的思想:將原問題分解爲幾個規模較小但類似於原問題的子問題,遞歸的求解這些子問題,然後再合併這些子問題的解

原创 JNI編譯cximage庫(附android.mk和application.mk文件及詳細步驟)

我們知道cximage是一個非常強大的C++圖片庫,其依賴於jasper庫,png庫,jpeg庫還有其他的幾種庫,因我們項目中只用到了這三個庫,所以我只使用jni編譯這三種庫。 先講一下jni編譯成動態so庫的幾種方式。 1.

原创 JNI相關配置javah,ndk-build和指令集以及.mk文件詳細講解(親測可用)

關於JNI,相比大家都不陌生,主要是最近工作用到了很多JNI相關的內容,踩了很多坑,記錄下爲了以後的學習者少走彎路. 一.先寫一下Android studio NDK的下載和配置方式. 1.Ctrl+alt+S打開Settin

原创 OpenGLES2.0繪製2D圖片詳解(附完整demo)

前段時間項目中有用到OpenGLES進行開發的部分,因此花了2周的時間研究了下OpenGLES,寫了個繪製2D圖片的Demo,OpenGLES提供了android訪問OpenGL的接口,也就是我們熟知的GLSurfaceView的

原创 排序算法之插入排序詳解(附示例代碼)

1.插入排序詳解和Demo代碼 插入排序的工作方式像許多人排序一手撲克牌.開始時,我們的左手爲空並且桌子上的牌面向下.然後,我們每次從桌子上拿走一張牌並將它插入左手中正確的位置.爲了找到一張牌的正確位置,我們從右向左將它

原创 WebView域名劫持問題以及自簽名證書驗證方式

一,背景介紹 WebView儘管有着各種各樣的問題,但是至今爲止很多前端頁面加載到客戶端還是要依靠WebView去加載,WebView加載的鏈接可以是不安全不需要經過證書認證的http,ws協議的域名,當然爲了數據的安全性,大部分網頁

原创 Android屬性動畫與自定義屬性動畫

一.動畫基礎知識 1.動畫分類 2.什麼時候用什麼動畫? 二.動畫實際示例 1.ObjectAnimator實現普通屬性動畫 2.ObjectAnimator實現自定義動畫 3.使用ValueAnimator實現動畫 4.Recy

原创 10分鐘理解Android數據庫的創建與使用(附詳解和示例代碼)

1.Android數據庫簡介. Android系統的framework層集成了Sqlite3數據庫,我們知道Sqlite3是一種輕量級的高效存儲的數據庫。 Sqlite數據庫具有以下優點: (1)零配置,無需安裝和配置; (2)儲

原创 機器學習基礎(入門篇)

1.什麼是機器學習? 簡單來說,機器學習就是把無用的數據轉化爲有用的信息。 機器學習橫跨計算機科學,工程技術和統計學等多個學科,需要多學科的專業知識。移動計算和傳感器產生的海量數據意味着未來我們將面臨着越來越多的數據,如何

原创 設計模式概述與設計模式之面向對象設計原則

一.概述 1.爲什麼要學習設計模式? 首先,從招式與內功的角度來說,Jaca,C#,C++這些開發語言,Eclipse,Android Studio,IntelliJ IDEA,JSP以及各種框架我們可以認爲是招式,而數據結構,算

原创 ViewPager中顯示圖片和播放視頻填坑之旅

一.需求來源與實現思路 1.最近項目需求中有用到需要在ViewPager中播放視頻和顯示圖片的功能,視頻是本地視頻,最開始的實現思路是ViewPager中根據當前item位置對應的是圖片還是視頻去初始化PhotoView和SurfaceV

原创 Android 6.0動態權限申請

1.Android6.0動態權限的由來 一直以來,Android的權限系統都是最大的安全問題之一,因爲在進行安裝的時候,所有的權限都會統一進行請求,你必須允許這些權限請求才能進行安裝.應用安裝後,就可以在用戶毫不知情的情況下,訪問這些權

原创 Git使用詳解(30分鐘理解Git)

GIt版本管理工具的強大之處不必多說,下面介紹下 首先說一下Git和SVN的區別. Git是分佈式管理系統,SVN是集中式管理系統. Git不需聯網就可使用,有一個本地倉庫和遠程倉庫,SVN必須依賴網絡. Git比SVN更高效和快