原创 dalvik.system.PathClassLoader[DexPathList[[zip file xxx ]] couldn't find "libplayer.so"

AndriodStudio集成 FFmpeg環境,報錯:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/

原创 架構之Binder 核心原理(一)

文章目錄什麼是BinderBinder與AIDL關係Binder更貼切的比喻Binder由來Android 爲什麼用Binder進行 ipc,爲什麼學binderAIDLAIDL: Android Interface Defini

原创 NDK之直播推流-服務器端搭建

文章目錄環境準備編譯及安裝1. nginx 引入rtmp模塊2. 編譯:`make install`3. 編譯完生成bin目錄修改配置啓動服務測試服務測試推流 Nginx 服務器配置與搭建 環境準備 下載Nginx wget

原创 架構之佔位式插件化框架 --組件通信

文章目錄Activity通信通過宿主來加載Plugin Activity1. 環境準備2. 加載3. 啓動插件4. 插件Activity的生命週期插件內部 Activity 加載Service通信動態廣播的使用 佔位式,也叫插裝

原创 AndroidStudio 3.6.1 buildoutput 亂碼

解決: 找到安裝目錄,D:\dev_tools\Android Studio Latest Version\android-studio\bin\studio64.exe.vmoptions 編輯器打開,加入: -Dfile.e

原创 AndroidStudio3.5.3調試NDK,無法斷點

如題:無法進入斷點模式,如下圖,做一些基礎配置, 重新debug,如果還無法進入debug模式,打開當前module的.iml文件,查看native-android-gradle節點的SELECTED_BUILD_VARI

原创 架構之UML建模

文章目錄一、逆向工程與正向工程在UML圖中的應用1. UML建模工具:2. UML工具 PowerDesigin 16.5 安裝:3. 名稱解釋:4. 操作流程二、關係(依賴,泛化,關聯,實現)畫法1. 依賴關係(Dependen

原创 NDK之常用快捷鍵

Ctrl+Alt+Shift+T Ctrl+Alt+T,Surround With

原创 Https抓包,Tunnel to......443

配置一切就緒後: 首先給PC安裝證書。瀏覽器輸入 http://10.10.29.65:8888/,然後安裝。 給手機安裝FiddlerRoot certificate 證書。同樣,手機瀏覽器輸入 http://10.10.29

原创 AAPT: error: attribute android:requestLegacyExternalStorage not found.

工程 採用的sdk 爲 28 , 第三方庫 sdk爲 29 , 測試機爲android10 適配androidQ或者改低庫sdk到28

原创 JVM探索

文章目錄JVM運行時數據區1. 線程共享區域1.1 方法區1.2 堆內存2. 線程獨佔區域2.1 虛擬機棧2.2 本地方法棧2.3 直接內存Java程序運行過程程序計數器線程安全問題 JVM運行時數據區 一個JVM進程也就是Ja

原创 架構之Binder 核心原理(二)

架構之Binder 核心原理(一) 打開binder設備: service_manager.c 源碼中: if (argc > 1) { driver = argv[1]; } else {

原创 架構之佔位式插件化框架-APK解析原理系統源碼分析

實現在插件中靜態廣播的加載,而靜態廣播是在manifest文件中註冊的。那麼宿主如何獲取插件中manifest中配置的靜態接受者?所以需要了解apk解析的原理。 問題: 靜態註冊的廣播,是什麼時候註冊的? 手機開機的時候,

原创 夯實基礎之Java 反射

文章目錄開始之前通過反射構建對象1. 類的構造方法無參數2. 類的構造方法有參數反射獲取類方法,並執行 開始之前 反射,一直是我的一塊心病,必須啃下來。 在研究插件化,在插件內部啓動插件自身的組件,如:Activity ,Ser

原创 gradle groovy

groovy語法: 一、基本使用 類型定義 //可選的類型定義 類型自動推導 def age = 10 def name = "城南一霸賈十七" assert age == 11 println("name is ${n