1、Android 目录结构
Android标准项目结构作为一名前端,暂时不需要关注android每个文件夹的作用,只需弄清楚项目运行流程即可,所以暂时只关注app目录和build.gradle
。显然app目录是源码目录;build.gradle是用来构建项目的,可以理解为前端的package.json,存放代码库地址以及需要哪些依赖帮忙打包
// Top-level build file where you can add configuration options common to all sub-projects/modules
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
源码app目录结构
app目录结构其中libs添加的jar包会被自动添加到构建路径中;app.iml文件没啥用,仅仅是标志该项目是用什么技术生成的;build.gradle文件是app模块的构建脚本,可理解为一个android项目可有多个模块构成,每个模块都有自己单独的build.gradle文件;proguard-rules.pro文件是当项目开发完成打成安装包不想被别人看到,让代码难以阅读。
src 目录
src目录结构drawable全部存放图片;layout存放布局;values存放样式、颜色、字符串等;mipmap-*dpi的都是应用图标文件,有多个是为了兼容不同的分辨率。其实在drawable下也应该有一个类似的目录结构,存放不同分辨率的图片。
2、Android 基本语法
2.1 android系统提供了哪些东西?
- 四大组件
Activity、Service、Broadcast Receiver、Content Provider。活动是android的门面,服务提供后台运行,广播接收器允许接受来自其他应用的通知(电话短信等),内容提供器其应用程序之间数据共享提供了可能 - 系统组件
界面都是由组件构成的,如TextView,Button等 - SQLite数据块
Android系统自带轻量级、急速的关系型数据库,让存储和读取数据更加方便 - 多媒体
如音乐、视频、录音、拍照等都可以通过代码控制,让你的运用丰富多彩 - 定位
内置GPS
android项目是怎么跑起来的
- 在Android-Manifest.xml中注册Activity
- Activity中完成布局的调用(android项目提倡视图和逻辑分离,所以是调用布局完成视图。逻辑都是写在Activity中的)
android中资源的书写和调用
- 定义:android中不论是layout、mipmap还是string、color,这些资源都是以xml形式来定义的,如定义颜色:
<?xml version="1.0" encoding="utf-8"?> // 这句话可有可无
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>
- 调用:有两种形式调用方式:1、在xml中调用时,用 @color/name的形式,如在layout.xml中调用
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
2、在Activity中调用时,用R.color.name。
color可换成string,layout,mipmap等资源
网友评论