Android学习--安卓项目解析

    三月份,公司的iOS项目自己做上线之后有点时间可能给自己学习,也就开始了自己的安卓学习之路,其实在学之前也和一些同行交流过,问问他们最近都有一些什么学习计划,没有谁建议去学安卓的,但后来自己想想,自己还是按自己的想法一步步的走吧,每一个人都有自己的计划、想法、不一定别人的就适合你,自己想想觉得iOS的经验肯定能帮助自己学安卓,当然前提是你得懂基本的Java,其实学安卓这个过程也肯定能帮助自己去巩固或者更深入的去理解iOS。恩...就这样开始吧。

    自己的学习也是按照《第一行代码 第二版》的学习总结的,刚开始的这些就当是一个一边总结知识点,一边学习的过程。当然每次总结之前,这部分的内容自己也肯定是学的也差不多掌握了的。博客就当是自己又一次回顾的过程。

    开发的工具就是AS(Android Studio),由于自己主要也做iOS的,就用Mac系统。

解析一个安卓项目

    将你的项目切换到Project结构模式下,图中的两个红圈地方都能够切换,你会看到这样一个项目的框架目录结构:

解析:

    一:.gradle 和 .idea 这两个目录下放置的都是AS自己生成的一些东西,我们不需要编辑也不需要关心。

    二:app 这个文件的话主要的代码资源全都在这里,这个下面再分析。

    三:build 这里我们也不需要多关心,他主要是编译时候生成的一些文件。

    四:gradle ,这个我百度了一下,感觉要深入了解需要时间精力能力 如何通俗地理解gradle这个留这里,等我感觉差不多时间到的时候也会回过头来再看的。

    五:gitigonore ,这个版本控制的坑我也会在后面的博客中补上,现在自己也不懂。

    六:build.gradle 项目全局的gradle构建脚本,通常是不用改的。这个后面也会再总结。

    七:gradle.properties 这个文件也是全局的gradle配置文件,在这里配置的属性将会影响到所有的gradle编译脚本。

    八:gradlew 和 gradlew.bat 这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在linux和mac系统中使用的,gradlew.bat是在windows中使用的。

    九:local.properties 这个文件用于指定本机中Android SDk 的路径,一般是自动生成的我们不需要更改,但要是你本机的SDK路径位置发生了变化,那就在这里改新的路径。

    十:setting.gradle 这个文件用于指定项目中所有引入的模块,通常情况下模块的引入都是自动完成的,一般不需要我们手动改。

详解项目资源

    上面所说的当中,最重要的估计大家也都知道,就是app里面的内容了。

      这一部分和上面重复的文件就不总结了,其实大家的功能都一样,只不过位置不一样的时候你所能控制的范围就不一样。下面总结的都是一些我自己觉得可能需要给自己提个醒的地方:

    一:就是androidTest这个文件,其实说实话在开发的过成中,大家都会习惯性的忽略这些测试功能,在iOS的项目中的单元测试和这个里的测试的使用都是一样的,我也是根据自己在iOS项目中的使用来理解这里的测试的,这个其实很重要,一个好的iOS项目离不开单元测试!我相信安卓的也是如此。

    二:你所有的资源都是放在res这个文件里面的,宝库图片、图标、布局文件、还有下面的values里面的颜色属性值,字符串等等。看了《第一行代码》,我自己的理解,图片文件你还是放在drawable中,它也可以像mipmap文件一样你可以去创建-xxhdpi等的文件,按照不同的尺寸要求放不同的图片,项目图标还是放在mipmap文件中,就像iOS中的Assets.xcassets文件一样,他还是有专门的文件AppIcon文件来管理这Icon部分的东西,这样显得比较不凌乱,我比较喜欢,很讨厌把Icon和其他图片混在一块。

再说说这个AndroidMainifest.xml文件:

      打开这个文件可以看到下面这段代码:

      

    一:上面Android的label,icon这些属性,就是修改应用的名称和桌面Icon,不过要是在下面的activirty标签中在使用这些属性的话,最外层的也就失效了。在这里你要注意的就是他们引用的文件的路径,比如:label的@string/app_name.你就在values文件下面的string文件找到app_name这个属性去修改,就可以修改应用的名称,其他的都是类似的。

    二:接着下面的像.Normal_Activuty这些活动的引入是AS自己做的,你要是想添加属性的话,就像.Dialog_Activity一样,添加了一个theme属性就在标签里面添加即可。

最后就是这两个build.gradle文件:

    这个文件的话是项目的最外层有一个,app文件里面有一个,我也是看着书大概了解了一下这两个文件,把说明注释全都加载了代码里面,直接上下面的代码也能知道他们的一个大概,等后面摸透了这个Gradle之后,这部分的内容可能还是的补充。

    最外层的 build.gradle文件:

下面是app里面的build.gradle文件:

posted @   MrRisingSun  阅读(624)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
历史上的今天:
2016-03-21 Swift2.0 UITextView 和 UITextFile 的使用
点击右上角即可分享
微信分享提示