当前位置: 首页 > 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.jsqmd.com/news/36693/

相关文章:

  • ModelScope 模型一键上线?FunModel 帮你 5 分钟从零到生产
  • 记录WPF 在清单列表设置了UIACESS为true,没有签名的报错“从服务器返回了一个参照”
  • 新手在哪里找预防感冒类公众号排版?
  • 领嵌iLeadE-588网关实现设备联网实现远程控制-工业智能网关
  • 2025年北京中央空调更换铜管维修护理权威推荐榜单:中央空调维修保养/中央空调电控系统改造升级/地源热泵进水维修护理精选
  • 2025年水果月饼批发厂家权威推荐榜单:五仁月饼/榴莲冰皮月饼/华美食品源头厂家精选
  • springboot框架非常简单清晰
  • 智慧医疗新突破:揭秘ModbusRTU转EtherCAT神器
  • 打破工业现场的“物理围墙”,如何让工程师在家也能改程序?
  • 近红外与可见光图像融合的多种方法实现
  • 赛博扫盲(2)
  • 基于PKHV3000系列无源高压衰减棒的应用案例
  • 课程设计
  • 2025年尼龙共挤膜直销厂家权威推荐:五层共挤膜/洁净尼龙多层共挤膜/无菌设备保护套厂家精选
  • 2025年全封闭超声波清洗机制造企业权威推荐榜单:零排放清洗机/蒸馏回收机/双溶剂清洗机源头厂家精选
  • 【RK3568 NPU实战】别再闲置你的NPU!手把手带你用迅为资料跑通Android AI检测Demo,附完整流程与效果
  • 智能守护绿水青山:视频融合平台EasyCVR在森林防火监控中的实战应用
  • 微算法科技(NASDAQ MLGO)将租赁权益证明(LPoS)共识算法与零知识证明结合,实现租赁代币的隐私保护
  • 在 Java 中实现插件化:使用 PF4J 的实战指南
  • 【SKILL】Layer Size
  • 中标喜报 | 璞华大数据中标成都苑东生物项目:制药设备管理数字化再树标杆
  • 胶粘剂行业PLM是什么?一文读懂胶粘剂(粘合剂)PLM系统的功能、价值、解决方案等
  • 非常简单的基于 Docker 自建 RustDesk 远程桌面教程
  • 2025年云南geo推广公司权威推荐榜单:GEO优化/geo/geo推广源头公司精选
  • 基于STM32F407与LAN8720A实现以太网通信
  • python-3.10.11安装
  • 实用指南:微信PC版本4.0后小程序目录变更
  • 2025年水泥砖纤维托板直销厂家权威推荐:水泥砖托板/水泥砖纤维托板/纤维托板源头厂家精选
  • 2025年北京地漏防臭治理服务权威推荐榜单:家政服务/小便池防臭治理/浴缸防臭治理服务供应商精选
  • CompletableFuture常见的java场景