原创 Rxjava2 Retrofit2 和 mvp再封裝

這個框架還是挺好用的,不過我技術比較渣,只能封裝成這樣了,望大牛指點。 1.添加類庫 compile 'com.squareup.retrofit2:retrofit:2.3.0' compile 'com.squ

原创 Android Design Support Library使用

1. 添加依賴 compile 'com.android.support:design:25.1.1' 2. Snackbar介紹 SnackBar通過在屏幕底部展示簡潔的信息,爲一個操作提供了一個輕量級的反饋, 並且在Snack

原创 圖片壓縮小結

1. 圖片壓縮1 /** * 圖片按比例壓縮方法一 * @param filePath 文件路徑 * @param outWidth 輸出文件寬度 * @param outHeig

原创 Java-冒泡排序

1.原理 比較兩個相鄰的元素,將值大的元素交換至右端。 2.思路 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數, 將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後

原创 Java-選擇排序

1.原理 每一趟從待排序的記錄中選出最小的元素,順序放在已排好序的序列最後,直到全部記錄排序完畢。 也就是:每一趟在n-i+1(i=1,2,…n-1)個記錄中選取關鍵字最小的記錄作爲有序序列中第i個記錄。 2.思路 給定數

原创 內存優化小結

1. Android內存分析方向 Java中的內存泄露主要特徵:可達,無用 無用指的是創建了但是不再使用之後沒有釋放 能重用但是卻創建了新的對象進行處理 2. 常見內存泄漏查找 Context 泄漏, 主要爲Activity 傳遞

原创 Java-插入排序

1.原理 把n個待排序的元素看成一個有序表和無序表。一開始有序表只包含一個元素,無序表中包含n-1個元素。 排序過程中每次從無序表中取出第一個元素,把它依次與有序表中的元素進行比較。然後把它插入到有序表的適當位置, 形成新的

原创 scheme喚醒外部APP

1. 跳轉原理 使用 scheme 的方式去實現跳轉,先整理一下思路,首先如果要外部能喚醒 App , 那麼 App 肯定要先註冊一個全局的事件監聽吧。然後,應該有一個頁面來處理接受事件, 然後解析出具體的參數,根據參數跳轉具體的

原创 android原生與js互調

1.初始化 1.佈局中添加webview控件 2.讓webview支持js webView.getSettings().setJavaScriptEnabled(true); 3.加載網頁 webView.loadUrl(

原创 HTTPS單雙向驗證

1.Http HyperText Transfer Protocol,超文本傳輸協議,是互聯網上使用最廣泛的一種協議, 所有WWW文件必須遵循的標準。HTTP協議傳輸的數據都是未加密的,也就是明文的, 因此使用HTTP協議傳輸隱私

原创 數據結構之棧和隊列的實現

1. 分析: 1. 棧的特點是先進後出 2. 棧就好比一個箱子,先放進去的東西,被壓在了箱子底部,需要上面的東西拿出來之後下面的東西才能拿出來。 3. 隊列的特點是先入先出 4. 隊列就好比排隊買票,先排隊的先買票,我可不會給你插隊的 5

原创 數據結構之可變長度數組-仿ArrayList實現

分析: 1. 實現一個能自動擴容的Array,基於數組實現 2. 有增刪改查操作 3. 類似一個Arraylist結合,支持範型 1.構造函數 private E[] mDatas; private int size; public

原创 數據結構之二分搜索樹增刪改查和遍歷實現

1. 概念 是指一棵空樹或者具有下列性質的二叉樹: 1. 若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值; 2. 若任意節點的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值; 3. 任意節點的左、右子樹也分別爲

原创 數據結構之鏈表實現

分析: 鏈表(Linked list)是一種常見的基礎數據結構,是一種線性表,但是並不會按線性的順序存儲數據,而是在每一個節點裏存到下一個節點的指針(Pointer)。 單鏈表是鏈表中結構最簡單的。一個單鏈表的節點(Node)分爲兩個部

原创 數據結構之遞歸實現

1. 概念解釋: 程序調用自身的編程技巧稱爲遞歸( recursion)。遞歸做爲一種算法在程序設計語言中廣泛應用。 一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型複雜的問題層層轉化爲一個與原問題相似的規模