编辑
2024-12-23
Android/Java
00

JNI 简介

JNI(Java Native Interface)是“Java 本地接口”的缩写,用于指使用 C 和 C++ 语言开发的接口。由于 JNI 是 JVM 规范的一部分,所以我们编写的 JNI 程序可以在任何实现了 JNI 规范的 Java 虚拟机上运行。这一特性允许我们复用大量用 C/C++ 编写的代码。

然而,开发 JNI 程序会受到系统环境的限制,因为用 C/C++ 编写的代码在编译时依赖于操作系统提供的库函数,并需要链接到本地库上。因此,编译后的二进制代码只能在特定操作系统环境下运行。由于不同操作系统有各自的本地库和 CPU 指令集,各平台对标准 C/C++ 规范和库函数的实现方式也有所不同。这使得使用了 JNI 接口的 Java 程序不再具备完全的跨平台能力。如果要实现跨平台,需要在不同操作系统下编译出相应的动态库。

编辑
2024-12-23
Android/Java
00

Android 工程项目结构解析

工程关键部分

以 Android Studio(或 Eclipse + ADT)为例,大部分开发工作集中在以下几个目录:

  • java:存放业务功能的 Java 代码。
  • res:存放各种资源文件,如图片、字符串、动画、音频以及各种 XML 文件。
编辑
2024-12-23
Android/Java
00

应用清单

每个应用的根目录中都必须包含一个 AndroidManifest.xml 文件(且文件名精确无误)。清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码。

清单文件主要功能

此外,清单文件还可执行以下操作:

  • 为应用的 Java 软件包命名:软件包名称充当应用的唯一标识符。
  • 描述应用的各个组件:包括 Activity、服务、广播接收器和内容提供程序。它还为实现每个组件的类命名并发布其功能,如可以处理的 Intent 消息。
  • 确定托管应用组件的进程
  • 声明应用权限:访问 API 中受保护部分所需的权限和与其他应用交互所需的权限。
  • 列出 Instrumentation 类:提供分析和其他信息(仅在开发阶段)。
  • 声明应用所需的最低 Android API 级别
  • 列出应用必须链接到的库
编辑
2024-12-23
Android/Java
00

一、基础知识

  1. Android SDK/NDK:
    • Android SDK 包含了调试器、库、模拟器、文档、实例代码和教程。
    • NDK 是支持使用 C/C++ 开发的工具包,适用于原生应用程序开发。
编辑
2024-12-23
Android/Java
00

Java 的反射机制

Java 反射机制允许你在运行时获取类的详细信息,并且调用对象的方法。它的主要作用包括:

  1. 判断任意对象所属的类;
  2. 动态构建类的对象;
  3. 获取类的成员变量和方法;
  4. 调用对象的方法;
  5. 生成动态代理。