00.Groovy
Groovy 语法 Groovy 基本语法 在 Groovy 中导入语句用 import 语句来导入 import groovy.xml.MarkupBuilder def xml = new MarkupBuilder() 默认情况下,Groovy 在代码中导入了以下库,这些库不需要显示地导入它们: import java.lang.* import java.util...
Groovy 语法 Groovy 基本语法 在 Groovy 中导入语句用 import 语句来导入 import groovy.xml.MarkupBuilder def xml = new MarkupBuilder() 默认情况下,Groovy 在代码中导入了以下库,这些库不需要显示地导入它们: import java.lang.* import java.util...
.so 文件,ABI 和 CPU 架构 CPU 架构 ARMv5早期 ARMv72010 年起 X862011 年起 MIPS2012 年起 ARMv82014 年起 MIPS642014 年起 X86_642014 年起 在 Android 系统,每一个 CPU 架构对应一个 ABI,都定义了一种 ABI,ABI 决定了二进制文件如何与系统进行交互:a...
卸载反馈 linux 层 -feedback fork 一个进程 监听自身应用的/data/data/package/目录是否存在 通过 linux 中的文件监听,inotify 监听 linux 中的文件状态 注意覆盖升级的问题 调用 am 命令跳转到网页 Java 层的 FileObserver 中的就是 inotify 机制 分析 AM.java 静默安...
NDK 基础 NDK 介绍 https://developer.android.com/ndk/guides/ 什么是 NDK? NDK,Native Development Kit,本地开发工具包。就是提供了一系列的工具,帮助我们快速开发 C/C++ 动态库,并可以将 so 库和 Java 应用一起打包成 apk。 原生开发套件 (NDK) 是一套工具,使您能够在 Android...
JNI 进阶 JNI Native 函数加载执行流程 静态注册的函数映射 用 javah 风格的代码,则 dvm 调用 dvmResolveNativeMethod 进行动态延迟解析,直到需要调用的时候才会解析。 DVM 调用 dvmResolveNativeMethod 函数 void* func = lookupSharedLibMethod(method) 去已加载的...
C/C++ 调用 Java 数据类型 Java 传递各种类似数据给 C++ 示例: Kotlin 代码 /** * Kotlin 将数据传递到 native 中 */ private external fun testJavaDataToCpp( boolean1: Boolean, byte1: Byte, char1: Char, short1: Short...
JNI 入门 JNI 概述 什么是 JNI? JNI,全名 Java Native Interface,是 Java 本地接口,JNI 是 Java 调用 Native 语言的一种特性,通过 JNI 可以使得 Java 与 C/C++ 机型交互。简单点说就是 JNI 是 Java 中调用 C/C++ 的统称。 什么是 NDK? NDK(Native Development Kit)...
JNI 基础 JNI 流程 JNI 中如何调用 Java 代码? JNI 调用 Java 中的代码过程有点类似 Java 中的反射 获取 jclass 对象,为了能够在 C/C++ 中调用 Java 中的类,jni.h 的头文件专门定义了 jclass 类型表示 Java 中 Class 类 获取属性方法 构造一个对象 Cmake 在 Android Studio...
白屏优化 图片白屏 # 得物App白屏优化系列|图片库篇
进程工具 获取进程名 获取进程名的常规方法,通过 ActivityManager 在多进程的 APP 中,常常需要知道当前进程是主进程还是后台进程?还是什么进程。 如下代码,是我们常见的一个用法,在进程启动时,根据进程名判断当前进程是哪个进程: /** * 通过ActivityManager 获取进程名,需要IPC通信 */ public static String getCurr...