原创 Android自動操作輔助工具思路分享

效果1: 效果2:   此次開發的工具都用純原生代碼進行Android的應用開發的,其實原理都是用了無障礙功能(AccessibilityService)進行處理。上個版本的工具太麻煩了,還需要進行相應的參數接口破解,獲取到相應的值再

原创 win10子系統Ubuntu編譯ijkplayer需要的環境配置

環境變量配置 sudo vim ~/.bashrc    在打開的文件末尾添加 #========jdk========# export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_231 export JRE_HO

原创 記錄一個jni動態註冊不經意犯的錯

錯誤提示:JNI DETECTED ERROR IN APPLICATION: jstring has wrong type 如果你的方法是這樣寫的 public native void init(String path) ; jni裏

原创 Android 列表的數據緩存處理

列表在app中是避免不了的,有些數據需要實時刷新,但是有些數據是不需要實時刷新的,或者數據一直是不變的,再者情況就是網絡加載出錯的時候,爲了美觀可以使用緩存數據應急等情況,這裏用到的是Serializable 序列化進行數據的持久性緩存

原创 記一次使用OLLVM增加so文件的分析難度(1)

編譯ollvm源碼(前提:我的這些都是放在/opt文件夾裏面操作的)1. git clone -b obfuscator-llvm-4.0 https://github.com/obfuscator-llvm/obfuscator.git

原创 元符號的視覺差小細節

正確的:   ¥ 習慣性的: ¥ 不要看上面都是一模一樣的的元符合,其實複製到代碼上就看到很明顯的效果了   正確的: 複製這個的,我用過的手機裏面都是顯示兩橫的   習慣性的: 負責這個的,經測試有部分手機顯示兩橫(小米),有部分手

原创 Win10下用AndroidStudio直接使用Ollvm

編譯過程看這裏:https://blog.csdn.net/u014476720/article/details/103662800   使用過程: 1.去ndk目錄替換文件   F:\androidsdk\ndk-bundle\tool

原创 Window10編譯Ollvm環境

在linux環境下編譯:https://blog.csdn.net/u014476720/article/details/85097441   在window10環境下編譯,需要羨慕兩個軟件工具: 剛開始用了mingw-w64最新包8.1

原创 EventBus3.0性能優化問題

引入 api 'org.greenrobot:eventbus:3.1.1' annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.1.1

原创 for循環與while循環的區別之處

從應用場景方面考慮: for循環適用於已知循環次數,while循環適用於未知循環次數。 那麼在已知循環次數時,最好選擇for循環; 如果循環次數是未知的。最好選擇while循環. 從內存角度考慮: 局部變量在棧內存中存在,當for循環語句

原创 單例模式——懶漢式與餓漢式

餓漢式單例模式:在程序啓動或者類被加載的時候,單例模式實例就已經被創建,直接說就是不管你用不用,都要先創建實例 public class Test { private static Test test = new Test();

原创 加密算法

異或加密  將十進制轉換成二進制進行異或,相同的爲0 ,不相同的爲1,可以看下圖理解,異或之後得出的二進制再轉十進制,之後的就是異或後的值 過程看這裏:https://blog.csdn.net/u014476720/article/de

原创 View繪製及優化

View的更新的兩種方法 1.invalidate 在UI線程自身中使用。利用invalidate()刷新界面,需要實例化一個Handler對象,並重寫handleMessage方法調用invalidate()實現界面刷新;而在線程中通過

原创 Android Studio編譯動態替換清單文件AndroidManifest.xml內容(找不到AndroidManifest路徑問題解決)

applicationVariants.all { variant -> //參數配置 variant.outputs[0].processManifest.doLast { d

原创 Android 多線程發送消息(Future、Callable)

多線程實現方式主要有三種: 繼承Thread類 實現Runnable接口 使用ExecutorService、Callable、Future   第1,2兩種是沒有返回結果的,第3是帶有返回結果 處理多線程發送消息用的是第3種,其是通過實