原创 Android JNI cpp文件創建 java bean 對象並返回

具體的使用方式都在代碼裏面了。首先準備一個 Student 和 PersonclassStudent{varname:String?=null;varage:Int?=0;}classPerson{constructor(){Log.e("

原创 Android Application創建到Activity啓動(launcher啓動和startActivity啓動)

文章目錄點擊桌面應用程序創建application和activity流程點擊 startActivity() 時的調用流程問題: 爲什麼啓動時會先調用棧頂activity的onPause()問題:爲什麼requestWindowFeatur

原创 Java實現LRU緩存方案

LRU 是 Least Recently Used 的縮寫,意思是 最近最少使用 。LRU 緩存就是使用這種原理實現,就是緩存一定的數據,超過設定的最大值以後就移除過期的數據。解決方案:可以使用兩個數據結構實現一個LRU緩存。1)使用雙向鏈

原创 從數組中找到 a+b=c+d 的兩個數對

給定一個數組,找出數組中是否有兩個對數(a,b)和(c,d)使 a+b=c+d ,其中 a,b,c,d 是不同元素。比如: {1, 9, 23, 3, 33, 7}; 1+9 = 3+7分析:如果使用四重循環的話時間複雜度爲O(N^4) ,

原创 如何用 O(1) 的時間複雜度求棧中最小元素

棧具有後進先出的特點,因此 push 和 pop 只需要對棧元素進行操作。通過遍歷來查找最小元素的時間複雜度爲 O(1) ,那麼如何才能用 O(1) 的時間複雜度求棧中最小元素呢?採用空間來換取時間的方式來提高時間複雜度。具體實現爲,使用兩

原创 java 如何實現棧

文章目錄棧的定義數組實現棧鏈表實現棧棧的定義棧(stack)是限制插入和刪除只能在一個位置上進行的表,該位置是表的末端,叫做棧頂(top),有的稱爲限定性的限制表結構。棧有時也叫做 LIFO (後進先出)表。數組實現棧使用數組實現棧優點:一

原创 如何查看單鏈表是否有環?

查看鏈表是否有環?兩種方式思路:就是因爲有環,所以是沒有尾節點,也就是 node.next 永遠都是有值的。可以通過兩個前進速度不同的節點去循環,如果有相遇的時刻說明有環。首先創建Node節點privateclassNode{private

原创 兩個升序數組合併成一個有序數組

題:兩個升序數組合併成一個升序數組。利用題中數組是生序排列的。代碼如下:代碼中去除了相同元素@Testpublicvoidtest(){// 定義兩個數組 a ,b 生序排列int[]a={1,3,11,34,444,555,9999};

原创 Android 從 MVC 到 MVP 的演變

文章目錄MVC 簡介MVP 簡介和基本框架搭建MVP 重構(1)MVP 重構(2)對網絡,圖片等的封裝MVC 簡介MVC 模式代表 Model-View-Controller(模型-視圖-控制器) 模式。這種模式用於應用程序的分層開發。Mo

原创 Android 組件化-Gradle配置

組件化 Gradle 配置1. 項目基本業務結構如下圖。新建項目結構如下:2. 抽取 gradle 基本配置到 config.gradleext{// 是否開啓組件化開發 true -> 開啓 false -> 不開啓isOpenCompo

原创 Android 插件化入門 (插樁原理)

文章目錄插樁方式實現插件化插樁方式實現插件化項目機構如下:app爲宿主application ,pluginstand爲中間連接作用,負責定義主app和插件之間組件傳遞規則。shop用來打包插件apk。主app和shop同時依賴 plugi

原创 Android AOP編程思想和實例(附帶源碼)

文章目錄AOP 介紹AOP實例AOP 介紹OOP爲 Object Oriented Programming,面向對象編程 把功能或問題模塊化,每個模塊處理自己的家務事。AOP爲 Aspect Oriented Programming 的縮寫

原创 AndroidManifest

文章目錄shareUidshareUid通過聲明 Shared User id ,擁有同一個 User id 的多個 App 可以配置成運行在同一個進程中,所以可以互相訪問任意數據。只有在主module中聲明 shareUid 纔會放到最終

原创 Kotlin協程入門(coroutine)

文章目錄1.kotlin協程簡介2.kotlin協程的特點3.啓動協程的方式3.1 runBlocking3.2 launch3.3 async/await1.kotlin協程簡介Kotlin協程的主要作用是像寫同步代碼一樣寫異步代碼。避免

原创 代理模式

文章目錄代理類示例代理模式的定義代理模式的應用代理模式的優點代理模式的使用場景代理模式的擴展普通代理強制代理代理是有個性的動態代理代理類示例以前很喜歡打遊戲,和隊友們一起打怪升級,那麼通過一段簡單的代碼來表示我們打遊戲的過程。代碼如下:首先