原创 Android項目之APK升級管理

APK升級採用DownloadManager類,它是系統提供的下載方法,支持斷點續傳、通知欄顯示。 downloadManager = (DownloadManager) application.getSystemService(

原创 Android基礎之加密解密

MD5工具類(MD5是編碼方式): public class MD5Utils { /** * 默認的密碼字符串組合,用來將字節轉換成 16 進製表示的字符,apache校驗下載的文件的正確性用的就是默認的這個組

原创 Kotlin自定義View之TabItem控制Fragments

引言 目前大多的app主頁面構成是由導航欄(底部或頂部)+Fragments,例如這樣 或這樣 從它們展示的效果上來分析,fragment在首次顯示的時候加載了數據,再次顯示的時候數據並沒有刷新,有可能是Fragme

原创 EXOPlayer簡要學習及應用

本想着上效果圖的,可惜圖片太大了不允許上傳參觀移步GitHub EXOPlayer是Google官方開源的一種播放器官方介紹 ,能夠支持DASH, SmoothStreaming 和 HLS,可惜不能支持Adobe的rtsp、rt

原创 IjkPlayer簡要學習及應用

引言 之前學習和使用過EXOPlayer,並結合Shared Elements效果在公司的項目中有應用。文章寫的很爛直接看github代碼吧! 相比EXOPlayer,B站的IjkPlayer逼格很高,是基於ffmpeg開源的輕

原创 Android項目之網絡請求

AsyncHttp框架 public class AsyncHttp { public static Handler handler = new Handler(Looper.getMainLooper());//回到主線

原创 排序算法的小結

這裏將列舉知名度較高的十種算法,附上自己的理解和代碼。 - 冒泡排序 - 選擇排序 - 插入排序 - 希爾排序 - 歸併排序 - 快速排序 - 堆排序 - 計數排序 - 桶排序 - 基數排序 啓發和圖片來自 十大經典排

原创 白話HashMap源碼(上)

HashMap一句話就可以說個大概: 用哈希算法把key計算出索引index,然後將key、value構成的HashMapEntry放入HashMapEntry[index],即完成了put功能,get時將key重計算出index去取Ha

原创 與ViewPager完美結合的順滑引導條系列之需求分析

當ViewPager滑動時,頂部的引導條也在根據ViewPager滑動的比例而滑動。這種效果是不是很順滑呢? 注: 此係列所有的座標均以0起始 滑動效果 我們來仔細分析一下滑動的過程: 默認第1項 引導條可單獨滑動 手勢右滑時,引

原创 二叉搜索樹的操作

二叉搜索樹(Binary Search Tree)是一種特殊形式的二叉樹,節點值大於左子樹小於右子樹。因爲這種性質,導致它的中序遍歷爲升序。 判斷一顆二叉樹是否爲二叉搜索樹 二叉搜索樹迭代器 二叉搜索樹查找 二叉搜索樹插入 二叉搜索樹刪

原创 白話HashMap源碼(下)

上一篇白話HashMap源碼(上)看過了HashMap的基本結構和主要的操作方法Get、Put、Remove的源碼。瞭解了HashMap的存儲方式,數組加鏈表,與空間的自增長思路,每次空間翻倍舊數據重新裝填。 這一篇主要看一下遍歷相關的源

原创 與ViewPager完美結合的順滑引導條系列之二

引言 在上一篇的最後提出了 索引滑動時遊標不動 一次完整的滑動必須是索引或遊標,不能共存 頻繁不規則地滑動ViewPager或引導條時,會引起NullPointerException,因爲RecyclerView找不到內部的View(

原创 前綴樹的操作

前綴樹是N叉樹的一種形式,常用於存儲字符串,樹中每一個節點表示一個字符。 前綴樹重要的存在價值是搜索速度,典型的利用空間換時間,時間複雜度爲O(n),n是樹的深度。 上圖中存儲了四個單詞:am、bad、be、so,位於葉子節點,葉子節

原创 N叉樹的操作

父節點有且最多隻有兩個子節點的樹稱爲二叉樹,N叉樹則是父節點有N個子節點。 由於N叉樹有多個子節點,因此沒有中序遍歷,只剩下前序遍歷、後序遍歷和層序遍歷。 前序遍歷 和二叉樹類似,遍歷的順序是 根節點-左子節點-其他子節點-右子節點

原创 Kotlin之應用Gson

引言 Gson是不是很簡潔很容易上手呢?最主要的就兩個方法toJson()和fromJson()將實體轉爲Json和將Json轉爲實體。 我之前沒有使用過Gson,更不用說是用Kotlin了。由於使用的時間還不是很長,好不好用還真不好說