原创 gitignore 的模式匹配

gitignore pattern: 空白行、# 開始的行會被忽略 使用標準的 glob pattern 時,將會在整個文件樹裏遞歸匹配 可以在前面加上 / 來阻止遞歸,只匹配當前目錄 可以在後面加上 / 來表明是一個目錄(默認

原创 啓動沒有在 AndroidManifest 中註冊的 Activity

文章目錄一、報錯二、思路三、啓動流程3.1 hook 點的選擇3.2 版本差異四、代碼4.1 Hook4.2 替換點4.3 恢復點 一、報錯 啓動沒有在 AndroidManifest 中註冊的 Activity,會報錯: and

原创 ClassLoader 加載外部 apk 內的普通類

新建工程 SimpleApk,新建 Person 類: package com.gdeer.simpleapk; public class Person { private String name; public

原创 Kotlin 筆記:密封類與代數數據類型

文章目錄一、密封類二、代數數據類型 一、密封類 Kotlin 類開放性排序 普通類(不加修飾符,不能繼承,默認是 final 的) 密封類(sealed 修飾符,有條件繼承) 開放類(open 修飾符,無條件繼承) 密封類的限

原创 Kotlin 筆記:內部類與嵌套類

文章目錄一、與 Java 的對比二、嵌套類三、內部類四、匿名內部類 一、與 Java 的對比 形式 \ 語言 Kotlin Java 一個 class 內聲明另一個 class 嵌套類 內部類 inner 內部類

原创 Ant 的模式匹配

Jenkins 的 Files to archive 需要按 Ant 的模式匹配去尋找文件,這裏記錄一下。 官網(主要看 Example) * :匹配 0 個或多個字符(不包含分隔符 /) ? :匹配一個字符 ** :匹配 0

原创 Kotlin 和 Groovy 的 lambda 對比

文章目錄一、格式1.1 完整格式1.2 簡化格式二、trailing lambda2.1 三個參數2.2 一個參數三、it3.1 作爲入參3.2 賦值給變量四、lambda 的返回值五、無用變量的處理六、外部變量的訪問七、invo

原创 Failed to delete \build\intermediates\intermediate-jars\debug\classes.jar

* What went wrong: Execution failed for task ':lib:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug'

原创 將自己的庫發佈到 JitPack

JitPack 的 GitHub 地址:https://github.com/dcendents/android-maven-gradle-plugin 文章目錄集成插件打 tag 集成插件 在 module 集成插件: //

原创 Android Gradle 提速實戰

文章目錄一、官方建議二、build cache三、parallel四、動態版本五、build scan六、Apply Change6.1 Apply Code Changes6.2 Apply Changes and Restar

原创 csdn 搜索自己的文章

這裏的搜索框搜出來是整個 csdn 的文章: 如果要搜索自己的文章,可以點擊“管理博客”: 在裏面的搜索框中搜索(只能搜索標題),在結果列表中點擊查看即可。

原创 Java 基礎:枚舉

枚舉的寫法 enum Shape { Circle, Rectangle, Triangele } 實際生成的類 // 反編譯 Shape.class final class Shape extends

原创 雙拼、kotlin、依賴倒置

最近在練習用雙拼打字。 雙拼,即每個字都用兩個鍵打出來。 比如,“中國”這兩個字,用全拼打出來的話,需要按的鍵是:z、h、o、n、g、g、u、o。 如果是雙拼(以小鶴雙拼爲例),就是v、s、g、o。 這相當於很多的快捷鍵,一個鍵可

原创 ShareSdk 編譯報錯問題

在執行 gradlew assembleDebug --scan 命令時,編譯不通過,報錯如下: * What went wrong: A problem occurred evaluating project ':app'. >

原创 Bitmap 使用 Matix 進行縮放時 filter 參數的含義

方法: public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)