了解安卓,了解JDK、SDK、NDK,了解gradle

本文介绍了安卓开发环境,强调了Android Studio作为官方指定工具的重要性,并详细阐述了JDK、SDK、NDK的用途与版本要求。同时,解释了gradle在构建过程中的角色,以及Android工程的目录结构,如(src/main/res)等关键部分。
摘要由CSDN通过智能技术生成

Android是一个开源的,基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑。

安卓开发环境:

安卓开发所使用的语言是JAVA或Kotlin,底层操作使用C\C++。
  安卓开发的工具主要有Eclipse或IDEA、Android Studio。其中Android Studio是官方指定的开发工具,推荐使用。而Eclipse目前(2020年2月14日)谷歌不再支持。推荐使用IDEA或Android Studio。
注意!无论是设置SDK的路径或者是设置你的项目或者是其它的,都不能使用中文!也尽可能的去不用中文!

JDK

JDK
  JDK是JAVA语言的编译器,全称为Java Development Kit,即Java开发工具包。因为Android应用层采用Java开发,其运行在Java虚拟机(Dalvik虚拟机,与JVM虚拟机不同)上。
  JDK建议安装1.8及其以上版本,因为不同的Android版本对JDK有相应的要求,例如Android 5.0默认使用JDK1.7编译,Android 7.0默认使用JDK1.8编译。
  如果JDK为1.6或者1.78,而SDK为最新版本,就可能会导致一下问题。
  (1)创建项目后,浏览布局文件设计图时会报错Android N requires the IDE to be running with Java 1.8 or later.
  (2)编译项目失败,提示错误 com/android/dx/command/dexer/Main: Unsupported major.minor version 52.0.
  (3)运行App失败,提示错误complieSdkVersion ‘android-24’ requires JDK 1.8 or later to compile.

SDK

SDK是Android应用的编译器,全称为 Software Development Kit,即软件开发工具包。SDK提供了App开发的常用工具合集。
在这里插入图片描述
其中主要包括:
add-ones 目录: 存放Google提供的服务扩展包。(Eclipse存在,Android Studio已经移动到其它地方去了。)
build-tools 目录: 存放各版本Android的各种编译工具。
docs 目录: 存放开发说明文档。
extras目录: 存放Android附加支持文件。主要有Android 的 support 支持包,Google 的几个工具和驱动、Intel 的 IntelHaxm。
platforms 目录: 存放各个版本的Android资源文件。包括字体、res 资源、模板等。
platform-tools和tools 目录,存放常用的开发辅助工具。十分重要。
samples 目录:存放各版本Android常用功能的demo 源码。
sources 目录: 存放各版本Android的API开发接口源码。
system-images 目录:存放模拟器各版本的系统镜像与管理工具。
emulator 目录: 存放模拟器软件。
patcher:存放补丁文件夹。(我也不知道是啥,翻译过来就是补丁)
cmake:存放跨平台的编译工具,用来编译C/C++代码。
ndk : 存放NDK开发工具。
fonts:存放字体。
licenses:存放SDK的验证,文件中存放着SKD的校验码。
lldb:存放c/c++调试器,用于NDK的调试。
skins:皮肤文件夹,存放一些虚拟机的效果图片。
(注:图片中仅仅是刚安装上的SDK。后面下载会会新添一些文件。例如安装了NDK的话就会存在ndk文件夹。)

NDK

NDK是C\C++代码的编译器,全称Native Development Kit。即原生开发工具包。该工具主要提供JNI接口使用,先将C\C++代码编译成so库,然后由Java代码通过JNI接口调用so库。
  因为Java字节码极其容易反编译查看到源代码,所以利用C\C++编译出来的so库可以存放一些核心代码,so库与Java字节码更难破解。且C\C++运行速度比Java快,可以编写一些处理量比较大、耗时的数据。(例如,音频,视频的处理运算。

gradle

简单了解Gradle

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置。其主要用于描述Android开发所需要的环境,管理第三方jar包,第三方扩展库,jar依赖关系等。

了解开发App的工程结构

Android Studio的工程创建分成了两个层次。
第一层次是Project(项目),指定了当前项目的工作空间。其相当于Eclipse的workspace。
Project结构图
  从图中可以看到,该项目下有4个文件夹,其中.gradle用来保存gradle的依赖信息,.idea用来保存开发工具的设置信息。
  而app是我们主要开发的文件夹,gradle是存放gradle的文件。我们只要关心app文件夹即可。 不过呢,还是要需要了解一些其根目录下的一些文件。
.gitignore 文件:指明git忽略文件清单,其指定的文件夹不会上传到仓库中。

Account.iml 文件:是项目用于保存开发工具信息的文件。其文件名是项目名。

build.gradle 文件:项目级编译规则文件,用于描述整个项目工程的编译规则。

proguard-rules.pro 文件:用于描述Java文件的代码混淆规则。

gradle.properties 文件:用于配置编译工程的命令行参数,一般无需改动。

gradlew 文件: Gradle Wrapper,用于是Gradle本身的安装、部署。其为Linux 下可执行脚本。

gradlew.bat 文件: Gradle Wrapper,用于是Gradle本身的安装、部署。其为Windows下可执行脚本。

local.properties 文件: 用于描述开发者本机的环境配置。SDK、NDK等指定路径就该文件中。

settings.gradle 文件:配置哪些模块一起编译。初始内容为include ‘:app’,表示只编译App模块。
第二层次是Module(模块),指定了当前项目中的模块,其中一个模块指一个单独的App工程。但也可以通过模块化编程合为一个App。其相当于Eclipse的project。
  其实app文件夹就是一个Module。当我们在创建一个新的Project时,就创建了一个默认的Module。其就是app文件夹。
在这里插入图片描述
从上方Module结构图中,我们可以看到:
build 目录:存放编译构建后的文件。
libs 目录:存放第三方jar包。
src 目录:源文件。
build.gradle 文件:当前Module的配置文件。
其中src目录和build.gradle文件比较重要。
下面会仔细讲解。

(app/src)

在这里插入图片描述
在这里插入图片描述

src文件夹包含了androidTest文件夹、main文件夹(重要!)、test文件夹。
androidTest 目录:安卓单元测试。其主要涉及Android仪器的单元测试。
main 目录:开发目录。
test 目录:单元测试。其不包含安卓的框架测试。
其中androidTest和test主要包含了java目录,其中包含着相对应的测试。

(app/src/main)

在这里插入图片描述
而main是我们主要的开发目录。主要包括如下:
(1) java 目录:主要存放java文件。其目录下是包名。

(app/src/main/res)

在这里插入图片描述
(2) res 目录: 安卓资源文件夹。主要存放布局资源,图片资源等等。
res\drawable 目录: 存放图形描述文件与用户图片。其中后面跟随着的hdpi、mdpi、xhdpi、xxhdpi等等都是指图片的分辨率,相对应的图片应该放入相对应的文件夹中。
res\layout 目录:存放app页面的布局文件。
res\mipmap 目录:app的图标文件夹。存放app的图标。其

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序彦

您的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值