惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
F
Fortinet All Blogs
腾讯CDC
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
WordPress大学
WordPress大学
雷峰网
雷峰网
小众软件
小众软件
D
DataBreaches.Net
V
Visual Studio Blog
博客园 - Franky
IT之家
IT之家
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
博客园 - 聂微东
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
云风的 BLOG
云风的 BLOG

OhYee 博客

小鹏辅助驾驶测评|OhYee 博客 小鹏非支持手机开启自动解锁|OhYee 博客 使用函数计算实现 301 重定向|OhYee 博客 针对 HTML 内容使用 Ant Design 图片弹框|OhYee 博客 博客进程泄露及僵尸进程解决|OhYee 博客 蓝易云服务器体验|OhYee 博客 SSH 调起本地 VSCode|OhYee 博客 【2022 秋招内推】阿里云后端研发工程师|OhYee 博客 使用函数计算获取 IP 地址信息|OhYee 博客 正确获取客户端 IP/HTTP Header 也可能重复|OhYee 博客 评测 Oculus Quest2 及 BigScreen|OhYee 博客 NextJS 热重载保留状态|OhYee 博客 如何优雅地贴 gist 代码|OhYee 博客 Linux 精细化文件权限|OhYee 博客 VSCode 容器开发环境|OhYee 博客 Clash 的不兼容更新排查|OhYee 博客 Zeek 导出 PCAP|OhYee 博客 记一次 ssh 配置问题|OhYee 博客 Git Commit 规范化工具|OhYee 博客 谈谈《星之卡比-探索发现》|OhYee 博客 VSCode 快捷键绑定 Shell 命令|OhYee 博客 ASN.1 语法及 X.509 证书格式解析解析|OhYee 博客 腾讯企业邮箱忽略 MX 记录发信|OhYee 博客 Chrome/Edge 标签组插件|OhYee 博客 【应届内推】阿里云后端研发工程师|OhYee 博客 损坏的 Typecho 备份处理为 JSON|OhYee 博客 VS Code VIM 插件高效使用|OhYee 博客 SSH 正反向代理|OhYee 博客 Let's Encrypt 根证书过期引发的问题|OhYee 博客 OpenWRT 忽略内核依赖|OhYee 博客
学习安卓开发|OhYee 博客
2017-03-11 · via OhYee 博客

学习安卓开发

这是一篇最后编辑于 8 年前 的文章,其内容可能与目前实际情况差异较大,请注意甄别

安卓又是一个大坑

IDE的选择

安卓开发有两个 IDE 可供选择

  • eclipse
  • Android Studio

虽然 eclipse 是 Java 的王者,但是自然是专为 Android 开发准备的 Android Studio 更适合我们

首先,Android的开发需要安装 Android SDK ,因此需要在安装 IDE 的同时顺便勾选上 Android SDK

运行第一个项目

安装完成后,就可以开始自己的第一个项目了
正常的新建等步骤
然后可以什么都不管直接跑(Hello World)
就会发现并不能直接编译

因为 Android 的软件自然是要在 Android 设备上跑的,直接在 Windows 显然跑不起来
因此还需要 Android 虚拟机
SDK Manage 里确保已经有个基础的 SDK (记得看下另一个选项卡的 SDK tool)
然后在 AVD Manage 里新建一个设备
这里就是管理你的安卓模拟器的地方,配置好(选择不同版本的系统需要下载对应版本的包)
最后 Sync Project with Gradle Files 即可
这时再点击运行就会启动安卓模拟器并且自动装上你的软件了

Grable

通俗来说,Grable 就是一个帮你完成写完整体架构后的编译工作的工具
不管你要针对不同的幸好编译多少的版本,也不管你需要依赖多少文件,全部交给它搞定即可

Gradle的配置包含以下方面

  • 构建变量
    构建系统可以根据不同的配置为同一个项目生成多个APK。当你想建立不同版本的应用程序,而不必为每个人单独的项目,这是很有用的
  • 依赖关系
    构建系统管理项目的依赖,并从本地文件系统和远程存储库支持的依赖。这可以防止你不必搜索,下载和复制二进制包为你的依赖到你的项目目录。
  • 清单条目
    构建系统使您可以指定的值在生成配置清单文件中的某些元素。这些新的值将覆盖在manifest文件中的现有值。如果你想生成多个的
    APK为您的项目中,他们每个人都有不同的包名,最小的SDK版本,或目标SDK版本,这是很有用的。
  • 签名
    构建系统使您可以指定生成配置签名设置,它可以在生成过程中签署您的APK。

Andriod Studio 的 Android 目录解释

参考文章:
1.Android Studio目录结构浅析

首先看一下一个简单的程序包含哪些文件

```

│ build.gradle
│ gradle.properties
│ gradlew
│ gradlew.bat
│ local.properties
│ SchoolNavigation.iml
│ settings.gradle
├─.gradle
├─.idea
├─app
│ │ .gitignore
│ │ app.iml
│ │ build.gradle
│ │ CMakeLists.txt
│ │ proguard-rules.pro
│ ├─libs
│ └─src
│ ├─androidTest
│ ├─main
│ │ │ AndroidManifest.xml
│ │ ├─cpp
│ │ ├─java
│ │ └─res
│ │ ├─anim
│ │ ├─drawable
│ │ ├─drawable-hdpi
│ │ ├─drawable-mdpi
│ │ ├─drawable-xhdpi
│ │ ├─drawable-xxhdpi
│ │ ├─layout
│ │ ├─menu
│ │ └─values
│ │
│ └─test
├─build
└─gradle

</div></div>  

<br>

首先最显眼的就是 Gradle  
所有名字带有这个的自然就是 Gradle 需要的  

`.gradle` 就是 Gradle 的编译系统  
`gradlew`	和 `graldew.bat`	分别是 *nix 和 windows下的 gradle wrapper 可执行文件  
`build.gradle` `settings.gradle` 和 `gradle.properties`	都是相关的设置  
`gradle` 	wrapper的jar和配置文件所在的位置  

`local.properties` 则是记录了该项目的一些信息(key、sdk位置等)  
`.idea` 是 Android Studio 需要的一些文件  
`build`	代码编译后生成的文件存放的位置

这些都是 ide 自己可以生成的,不是我们应该关系的内容  


`app` 文件夹内才是我们需要特别关注的,我们写的代码、调用的资源全部都在这里  
`bulid` 同样是编译后生成的文件目录  
`libs` 则是项目依赖的库的目录,使用的外部的库都放在这个目录里  
`src` 就是我们接触最多的源码目录了  

里面的 `test` 显然是测试代码  
`main` 就是主代码了  
进去后会有最关键的 `AndroidManifest.xml` 这个就是项目清单文件,这个文件列出了应用程序所提供的功能,所有开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),还需在该文件中声明使用权限.  
而其他的几个 `java` `cpp` 则是通过不同语言写的代码部分,也就是后端部分  
`res` 则是资源目录,每个页面的布局、使用的动画图片等前端部分放在这里