[Android JNI] --- Java和Android简介

简介: [Android JNI] --- Java和Android简介

1 Java简介

1.1 Java技术体系

技术体系 说明
Java SE(Java Standard Edition):标准版 Java技术的核心和基础
Java EE(Java Enterprise Edition):企业版 企业级应用开发的一套解决方案
Java ME(Java Micro Edition):小型版 针对移动设备应用的解决方案

1.2 Java版helloeworld示例

// HelloWorld.java
public class HelloWorld {
  public static void main(String[] args) {
    System.out.print("Hello World");
  }
}
• 1
• 2
• 3
• 4
• 5
• 6

编译运行如下:

javac 编译命令、 java 执行命令

1.3 IDEA管理Java程序的结构

project(项目、工程)

module(模块)

package(包)

class(类)

Note:

1>文件名称必须与代码中的类名称一致

2>一个代码文件中可以有多个class,但是只有一个能为public,且public修饰的类名必须与文件名相同

3>java没有头文件的概念

4>所有的java 类默认继承object类

5>Java的属性控制protected > 默认> private> public

2 Android简介

2.1 android studio开发环境

概念明晰

  • Android studio
    Android Studio 目录结构:

项目下面有两个分类:一个是app(代表app模块);另一个是Gradle Scripts。其中,app下面又有3个子目录,其功能说明如下:

(1)manifests子目录,下面只有一个XML文件,即AndroidManifest.xml,它是App的运行配置文件。

(2)java子目录,下面有3个com.example.myapp包,其中第一个包存放当前模块的Java源代码,后面两个包存放测试用的Java代码。

(3)res子目录,存放当前模块的资源文件。res下面又有4个子目录:

drawable目录存放图形描述文件与图片文件;

layout目录存放App页面的布局文件;

mipmap目录存放App的启动图标;

values目录存放一些常量定义文件,例如字符串常量strings.xml、像素常量dimens.xml、颜色常量colors.xml、样式风格定义styles.xml等。

Gradle Scripts下面主要是工程的编译配置文件,主要有:

(1)build.gradle,该文件分为项目级与模块级两种,用于描述App工程的编译规则;

(2)proguard-rules.pro,该文件用于描述Java代码的混淆规则;

(3)gradle.properties,该文件用于配置编译工程的命令行参数,一般无须改动;

(4)settings.gradle,该文件配置了需要编译哪些模块。初始内容为include ‘:app’,表示只编译app模块。

(5)local.properties,项目的本地配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等。

1>使用xml标记描述界面,使用java代码书写逻辑

2>app工程分为2个层次,第一个层次是项目,另一个层次是模块

模块依附于项目,每个项目至少有一个模块,也能拥有多个模块

3>一般说的编译运行app,指的是运行某个模块,并非某个项目,因为模块才对应实际的app

  • android sdk
    安卓SDK:安卓SDK是用于安卓操作系统的软件开发工具包。它包含了开发安卓应用程序所需的API、库、调试器和其他工具。使用安卓SDK可以创建各种类型的安卓应用程序,包括移动应用、游戏、浏览器插件等。
  • Java sdk
    Java SDK:Java SDK是用于Java编程语言的软件开发工具包。它包含了Java编程所需的所有工具和库,如编译器、调试器、JRE等。使用Java SDK可以创建各种类型的应用程序,包括桌面应用、Web应用、移动应用等。

安装java sdk后,安装目录会有jdk jre

jre(java runtime environment):java程序运行时环境,包含jvm和运行时所需要的核心类库

jdk:java程序开发包,包含jre和开发人员使用的工具。

开发工具:编译工具Javac.exe; 运行工具java.exe

jdk,jre, jvm关系

配置环境变量

检查是否安装好:jave -version

  • native sdk
    Native SDK:Native SDK是用于本地应用程序开发的软件开发工具包。它包含了本地编程语言(如C++)所需的工具和库,如编译器、调试器等。使用Native SDK可以创建各种类型的本地应用程序,包括桌面应用、游戏、嵌入式系统等。

安卓调试

  • 安卓 模拟器 Device manager -> Create device
  • 在线真机调试

2.2 Android体系架构

2.3 Android基础知识简介

2.3.1 UI

软件设计可分2部分:编码设计和UI设计

安卓UI由布局和控件组成

2.3.2 布局和控件

布局:

布局中所有元素均可用View和ViewGroup组成

View通常绘制用户可查看并进行交互的内容

VeiwGroup是不可见容器,用于定义view和ViewGroup对象的布局结构

布局申明:在src/main/res/layout/activity_main.xml进行编辑

加载xml资源: setContentVeiw()

组件

TextView

EditText

Button

ImageView

3. Android四大组件

activity

service

BroadcastReceiver

ContentProvider

数据存储

网络编程

相关文章
|
9月前
|
人工智能 安全 Java
Go与Java泛型原理简介
本文介绍了Go与Java泛型的实现原理。Go通过单态化为不同类型生成函数副本,提升运行效率;而Java则采用类型擦除,将泛型转为Object类型处理,保持兼容性但牺牲部分类型安全。两种机制各有优劣,适用于不同场景。
416 24
|
存储 缓存 算法
JVM简介—1.Java内存区域
本文详细介绍了Java虚拟机运行时数据区的各个方面,包括其定义、类型(如程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和直接内存)及其作用。文中还探讨了各版本内存区域的变化、直接内存的使用、从线程角度分析Java内存区域、堆与栈的区别、对象创建步骤、对象内存布局及访问定位,并通过实例说明了常见内存溢出问题的原因和表现形式。这些内容帮助开发者深入理解Java内存管理机制,优化应用程序性能并解决潜在的内存问题。
689 29
JVM简介—1.Java内存区域
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
1341 1
|
9月前
|
人工智能 Java
java中static关键字简介
`static`关键字用于修饰类的成员变量和方法,使其属于类而非对象。静态成员可通过类名直接访问,无需实例化对象。静态方法只能访问静态成员,不能直接访问非静态成员或使用`this`关键字。此外,静态代码块在类首次加载时执行且仅执行一次,适用于初始化操作。
233 0
|
Java Linux API
课时3:Java简介(Java主要特点)
本文介绍了Java的主要特点及其运行机制。Java结合了编译型和解释型语言的优点,通过Java虚拟机(JVM)实现跨平台移植,简化了不同操作系统间的开发流程。Java的特点包括可移植性、简单易用、支持多线程编程、自动垃圾收集和面向对象编程。随着硬件技术的发展,Java的性能问题已大大改善,成为行业标准之一,广泛应用于各种商用平台开发。
358 1
|
存储 JavaScript Java
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
242 2
Java 中的 String Pool 简介
|
自然语言处理 Java 关系型数据库
Java mysql根据很长的富文本如何自动获取简介
通过使用Jsoup解析富文本并提取纯文本,然后根据需要生成简介,可以有效地处理和展示长文本内容。该方法简单高效,适用于各种应用场景。希望本文对您在Java中处理富文本并生成简介的需求提供实用的指导和帮助。
276 9
|
开发框架 移动开发 Java
课时2:Java简介(Java发展概述)
课时2:Java简介(Java发展概述) 摘要: 1. Java基础知识:介绍Java作为编程语言及其思想。 2. Java的发展历史:从1991年GREEN项目到1995年正式推出,历经网景公司、HotJava浏览器等关键节点。 3. Java的版本信息:涵盖从JDK 1.0到JDK 1.8的主要版本及特性,如Lambda表达式和模块化支持。
340 0
|
存储 Java C语言
课时11:Java数据类型简介
本文介绍了Java中的数据类型划分,主要分为基本数据类型和引用数据类型。基本数据类型包括数值型(整型、浮点型)、布尔型和字符型,每种类型有固定的默认值和存储范围。引用数据类型涉及内存使用,如数组、类和接口,默认值为Null。文中还提供了不同类型的选择原则,帮助开发者在实际编程中合理选用数据类型。
151 0
|
Oracle Java Unix
课时1:认识Java(Java发展简介)
课时1:认识Java(Java发展简介)。主讲人李兴华介绍了Java的起源、发展历程及其广泛应用。Java由Sun公司开发,最初为嵌入式系统设计,后演变为三大方向:Java SE、Java ME和Java EE。尽管面临版权争议等挑战,Java仍是最流行的编程语言之一,广泛应用于大型企业及互联网平台开发。
172 0