当前位置: 首页 > news >正文

安卓开发入门

安卓操作系统
广泛用于手机上,和苹果的ios系统二分天下。系统本身是linux变种,用c编写,但是开放的编程接口是 java 语言。

java
java 是一门跨平台语言,可以编译成 java 字节码, 字节码运行在 java 虚拟机上,只要做几个跨平台的虚拟机,就可以实现 java 程序跨平台。
JDK
java development kit,java 开发工具包,包含 java 源代码到字节码的编译器,java 和操作系统交互的基础库,以及java 虚拟机。
JBR
由于oracle收购收紧权限的问题,在安卓平台上有JDK的变种 JBR

打包工具
一个项目有许多 java 源文件,基础库,第三方库,资源等等,打包工具分析依赖关系,集成依赖包,编译源代码 到可执行的 java 字节码等等工作。
ant
早期的 java 项目打包工具,使用xml配置
maven
主要解决了依赖关系的问题,使用xml配置
gradle
配置数据使用自定义的 dsl, 执行的脚本使用 groovy,或者kotlin语言。
gradle plugin
gradle也采用了现代的plugin模式来扩充编译过程中的自定义处理。也是使用groovy,或者kotlin等java系语言。
android gradle plugin (AGP)
Android Studio 集成开发工具里面自己集成了一些安卓开发用的 gradle plugin 。

安卓项目程序源码
传统的使用 java 源代码,现在的使用 kotlin 源代码。kotlin 也是 java 的变种。

JDK的依赖
不管是程序的业务代码,还是build工具的脚本,都依赖 java 语言和其基础包。
但是两者又目的不同,所以要很清楚的区分开。

Gradle脚本必须使用小于其指定java版本的特性

  • Gradle如果没有获得任何信息,那么默认使用计算机的JAVA:系统指向的,或者根据查找文件规则找到的
  • 如果指定了 toolchain, 那么使用toolchain指定的版本来运行 build 任务的脚本。
    业务源代码也必须使用小于其指定java版本的特性
  • 业务源代码默认使用 sourceCompatibility 所指定的 JAVA源代码可以使用的特性 版本。
  • 业务代码编译最终程序可以运行的最低版本使用 targetCompatibility 来指定。

所以我们看这个图:

jdks

首先,分成两类:左边 source 业务代码,和右边 Gradle build工具脚本代码

  • 如果什么都没有配置,两边都默认用 ToolChain
  • 业务代码可以使用 targetCompatibility , sourceCompatibility , 如果配置了的话。
  • build 工具代码在Android Studio工具里面使用工具配置的 JBR, 在命令行里面使用系统变量JAVA_HOME
http://www.gsyq.cn/news/45608.html

相关文章:

  • 领嵌iLeadE-588网关实现设备联网实现远程控制-工业智能网关
  • 2025年水果月饼批发厂家权威推荐榜单:五仁月饼/榴莲冰皮月饼/华美食品源头厂家精选
  • 智慧医疗新突破:揭秘ModbusRTU转EtherCAT神器
  • 课程设计
  • python-3.10.11安装
  • 实用指南:微信PC版本4.0后小程序目录变更
  • CompletableFuture常见的java场景
  • MySQL性能优化|InnoDB存储引擎深度解析:从表空间到数据行的设计哲学 - 指南
  • 2025年次氯酸钠储罐订做厂家权威推荐榜单:K方箱/废酸储罐/酸碱储罐源头厂家精选
  • 分治+字符串(p3612)
  • 2025年钢结构艺术造型直销厂家权威推荐榜单:钢结构景观造型/艺术钢结构/扭曲螺旋钢结构艺术造型源头厂家精选
  • 伊克罗德信息成为 Dify 官方代理商,携手共创企业级 Agentic AI 应用新未来!
  • 2025年沼气直燃品牌综合评测:徐州海德测控领跑行业
  • 2025年沼气直燃生产厂家实力对比:徐州海德测控领跑
  • 2025年市场低氮燃烧器供应商前十强
  • 2025年低氮燃烧器厂家综合实力排行榜TOP10
  • 2025年低氮燃烧器制造企业top10:行业排名与深度解析
  • 封装电气性能新径
  • 在Docker中live-restore
  • 11月10日打卡
  • 从局部性原理到一致性模型:深入剖析缓存设计的核心权衡
  • 逆向基础--数据传输指令mov和xchg (10)
  • P8186-传递闭包
  • P3623 免费道路 - Kruskal
  • 幂塔问题-扩展欧拉函数
  • 手持贴标机生产源头厂家2025年市场洞察
  • 奶牛抗议-二维偏序优化
  • 4G摄像机国标GB28181接入EasyGBS突然不上线?双网卡智能切换惹的锅!
  • 详细介绍:热门编程语言的排名及开源贡献比例表格-截至2025年10月
  • SQLite 连接串说明