原创 正則表達式(四):正則表達式中的分組的概念

 一、正則表達式分組的概念  正則表達式的分組能夠將子表達式做成子集,使用()進行分組,方便對match的字符串進行劃分。   二、正則表達式分組的命名方式 分組的命名方式爲:(?<groupname> exp) 另外還有一種方式,我們可以

原创 正則表達式(一):正則表達式的概念

一、正則表達式的概念 正則表達式是使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。 二、正則表達式的使用場景 1. 批量提取 / 替換有規律的字符串. 2. 在各種高級的文本編輯器中的使用. 3. 在各類辦公軟件(如Office等

原创 Android NDK 跨平臺構建工具 CMake 使用筆記

一、CMake 介紹 CMake是一個跨平臺的安裝/編譯工具,通過CMake我們可以通過簡單的語句來描述所有平臺的安裝/編譯過程。它能輸出各種makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的autom

原创 字節序問題之大小端模式講解

一、什麼是大小端模式 大端模式(Big-Endian):指的是數據的低位保存在內存的高地址中,而數據的高位保存在內存的低地址中. 小端模式(Little-Endian):指的是數據的低位保存在內存的低地址中,而數據的高位保存在內存的高地址中

原创 多媒體文件解析(一):WAV文件解析

在之前的《多媒體文件格式》系列中,我們對主流的多媒體的文件格式進行了整理和講述。這裏開始我們開始對如何分析和解釋多媒體文件來進行整理,以便於以後我們自己排查一些問題的時候有一些幫助。本篇我們就講一下WAV文件格式。 首先我們知道WAV格式的

原创 Android 12 谷歌強制 64 位應用,32 位App將被拋棄

目前谷歌應用市場已經強制我們提交的App必須包含64位的native庫,並且使用目前Android Studio 4.0開發的時候,也會看到在Build項目的時候,提示如下的內容: build.gradle: This app only

原创 Android NDK&JNI開發之Native崩潰日誌分析方法

在進行Android NDK開發的時候, 因爲代碼編寫導致崩潰的問題時有發生,但是問題在於,Native層的崩潰日誌,如果只看LogCat輸出的內容,我們會發現,根本無法進行分析和處理,因爲日誌內容中都是一大堆的內存地址信息。 原始錯誤日誌

原创 Android Studio 4.0 及以上版本技巧及問題總結

一、DataBinding開啓配置修改 升級到AS 4.0以後,出現如下的預警: DSL element 'android.dataBinding.enabled' is obsolete and has been replaced wi

原创 Android App 逆向安全

本文涉及的工具收集整理到Github上了:https://github.com/renhui/Thinking-Android-Safe 一、Android 逆向工具 1. ApkTool Android逆向分析領域歷史最久遠的工具之一,提

原创 Androidx Fragment 懶加載機制實現

在到Androidx之前我們使用support提供的Fragment的懶加載機制,基本上使用的是在setUserVisible + onHiddenChanged 這兩個函數。但是在Androidx下setUserVisible已經被Goo

原创 Kotlin 實戰記錄(一):Android Studio + Kotlin 開發問題整理

近期轉向kotlin進行項目開發,途中遇到了不少IDE+配置的問題,這裏會進行一一的彙總和整理問題及解決方案。 一、New Gradle Sync is not supported due to containing Kotlin modu

原创 Android DeepLink 深度鏈接技術實現 Android 從瀏覽器啓動應用 Android 從瀏覽器啓動應用

一、DeepLink 技術介紹 DeepLink,即爲深度鏈接技術,主要應用場景是通過Web頁面直接調用Android原生app,並且把需要的參數通過Uri的形式,直接傳遞給app,節省用戶的註冊成本。 DeepLink 通常運用於App社

原创 Android Framework 學習(五):Activity 啓動流程

一、Activity啓動步驟 Activity的啓動流程爲:創建Activity對象  ==>  準備好Application ==> 創建ContextImpl  ==> attach應用上下文  ==> 生命週期onCreate回調。

原创 Android Framework 學習(四):Binder機制與代理模式

Binder是Android的進程間通信核心,Android的各種核心服務都是通過Binder機制進行相互通信的。熟悉Binder機制話就會知道,Binder的client部分就是通過代理模式來訪問Server端的。本文我們就結合代理模式來

原创 Android Framework 學習(三):Android 跨進程通信機制

一、跨進程通信方式 跨進程通信主要有以下幾類:管道、Socket、共享內存、信號。 1. 管道 管道的特點是半雙工&單向的,管道里面的數據只能往一個方向流動。一般情況下管道是在父子進程之間使用的。 2.socket socket的特點是全雙