Android项目结构解析

本章会跳过工程建立,直接解释初始项目包的各个意义
Android项目结构解析_第1张图片

其中观察两部分

java:代码编辑部分,主要用于实现各种功能

res:资源存放部分,比如存放图片,音视频,字符串,XML文档 

        res下方还会存在一个assets目录,作用一致,res会在R.java(R文件可以理解为字典,res下每个资源都都会在这里生成一个唯一的id)下存放资源对应id,可以直接通过资源id访问到对应的资源;而assets不会有对应id,需要通过AssetManager以二进制流的形式来读取

        可存放的图片资源

                drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable类型的XML文件

                mipmap-hdpi:高分辨率,一般我们把图片丢这里

                mipmap-mdpi:中等分辨率,很少,除非兼容的的手机很旧

                mipmap-xhdpi:超高分辨率,手机屏幕材质越来越好,以后估计会慢慢往这里过渡

                mipmap-xxhdpi:超超高分辨率,这个在高端机上有所体现

        布局资源

                layout:该目录下存放的是布局文件,另外在一些特定的机型上,做屏幕适配,比如480*320这样的手机,开发会另外创建一套布局就行,举例:layout-480x320(文件夹名称)

        菜单资源

                menu:物理菜单按钮,即menu键的手机上,用的较多,现在用的并不多(手势导航),菜单项相关的资源xml在这里编写

        values

                demens.xml:定义尺寸资源

                string.xml:定义字符串资源

                styles.xml:定义样式资源

                colors.xml:定义颜色资源

                arrays.xml:定义数组资源

                attrs.xml:自定义控件时用的较多,自定义控件的属性!

                theme主题文件:和styles很相似,但是会对整个应用中的Actvitiy或指定Activity起作用,一般是改变窗口外观的!可在Java代码中通过setTheme使用,或者在Androidmanifest.xml中为添加theme的属性 

        raw

                用于存放各种原生资源(音频,视频,一些XML文件等),通过openRawResource(int id)获取资源,属于是res+assets两者结合产物,存放资源后会在R.java上生成对应唯一id且获取资源的方式是二进制流式

        动画资源

                属性动画:存放属性动画的XML文件(所见即所得,最终的显示位置变了,坐标也变了

                补间动画:存放补间动画的XML文件(所见并非所得,虽然最终的显示位置变了,但是坐标还是之前的

在17年的Google I/O上,Google正式宣布Kotlin成为Android的官方语言。Android开发将会逐步的从Java语言转移到Kotlin

Kotlin

app项目创建:Android项目结构解析_第2张图片

工程目录结构 

Android项目结构解析_第3张图片

libs:开发使用的jar包存储处

src:源码存储处

        androidTest:测试       

        main:主界面

                java:存放包

                        com

                                exam

                                        testapp(com.exam.testapp)包名

                                                ui(ui界面)

                                                        MainActivity(实现方法)

res:存放资源处

同java资源属性

AndroidManifest.xml(安卓清单文件:声明在使用过程中所有权限)

例:访问网络权限 

        读写外部存储卡

包括activity 广播  server 

build.gradle(声明1.apk编译版本2.工具构建版本3.包名4.所支持的min sdk5.版本号6.各种依赖)注意比较根目录下的build.gradle,他是用来存放插件的,比如(classpath"com.android.tools.build:gradle:4.1.0")跟目录下的仓库配置,去拉去依赖(常见的库有maven/google/jcenter)

以上是对Android 项目工程解析,解释了各个文件意义

你可能感兴趣的:(android)