网站建设英文怎么写,网页认证,广东省城乡建设厅网站首页,安徽建设工程信息中标一、Android简介
1.android系统架构
linux kernel#xff08;Linux内核层#xff09;#xff1a;提供硬件底层驱动
libraries#xff08;系统运行库层#xff09;#xff1a;提供了主要的特性支持#xff0c;如SQLite库、Webkit库#xff1b;还包含android runtimeLinux内核层提供硬件底层驱动
libraries系统运行库层提供了主要的特性支持如SQLite库、Webkit库还包含android runtimeandroid运行时库
application framework应用框架层提供了构建应用程序时可能用到的各种API
applications应用层手机上的应用程序
2.Android应用开发特色
1.四大组件
活动Activity看得到的
服务Service看不到的
广播接收器Broadcast Receiver接受其他应用的广播消息
内容提供器Content Provider应用程序间共享数据
2.丰富的系统控件
3.SQLite数据库嵌入式关系型数据库支持标准的SQL语法还可以通过Android API进行操作
4.强大的多媒体
5.地理位置定位
二、工具准备
JDK
Android SDK
Android Studio
Tips:新建项目的时候是否勾选use legacy android.support libraries 不要勾选因为已经使用androidx类库替代了
三、分析第一个Android程序
.gradle和.idea
自动生成无需关心
2.app
放置项目的代码、资源等内容
3.build
包含编译时自动生成的文件无需关心
4.gradle
包含了gradle wrapper的配置文件使用gradle wrapper的方式不需要提前将gradle下载好而是会自动根据本地的缓存情况决定是否需要联网下载gradle
.gitignore
将指定的目录或文件排除在版本控制之外
6.build.gradle
项目全局的gradle构建脚本
7.gradle.properties
全局的gradle配置文件
8.gradlew和gradlew.bat
在命令行页面中执行gradle命令
9.HelloWorld.iml
IDEA自动生成标识这是一个IDEA项目
10.local.properties
指定本机中Android SDK路径
11.setting.gradle
指定项目中所有引入的模块
1.app目录详解
1.build
编译时自动生成
2.libs
第三方jar包
3.androidTest
编写测试用例自动化测试
4.java
Java代码或Kotlin代码
5.res
资源目录图片放到drawable目录录下布局放到layout目录下字符串放到values目录下
6.AndroidManifest.xml
整个项目的配置文件四大组件都需要在这个文件注册
7.test
自动化测试的另一种方式
.gitignore
app模块内指定的目录和文件排除在版本控制之外
9.app.iml
IDEA项目自动生成无需关心
10.build.gradle
app模块的gradle构建脚本
11.proguard-rules.pro
指定项目代码的混淆规则防止打成的安装包文件被破解
2.分析HelloWorld项目
activity android:name.MainActivityintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter
/activity表示MainActivity是这个项目的主活动点击应用首先出现的就是这个活动 创建的活动继承了AppCompatActivity这是一种向下兼容的Activity兼容到Android2.1
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
}为当前的活动引入activity_main这个布局
3.详解项目中的资源
drawable开头放图片
mipmap开头放应用图标
values开头放字符串、样式、颜色等配置
layout放布局文件
resourcesstring nameapp_nameHelloWorld/string
/resources4.详解build.gradle文件
最外层目录下的build.gradle文件
buildscript {repositories {google()jcenter()
}dependencies {classpath com.android.tools.build:gradle:4.1.2// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {google()jcenter()
}
}google()是Google自家的扩展依赖库
jcenter()是第三方代码托管库现在已经废弃迁移至mavenCentral()
classpath com.android.tools.build:gradle:4.1.2 表明Gradle构建的是Android项目
app目录下的build.gradle文件
plugins {id com.android.application
}android {compileSdkVersion 30buildToolsVersion 30.0.3defaultConfig {applicationId com.jack.helloworldminSdkVersion 21targetSdkVersion 30versionCode 1versionName 1.0testInstrumentationRunner androidx.test.runner.AndroidJUnitRunner}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile(proguard-android-optimize.txt), proguard-rules.pro}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
}dependencies {implementation androidx.appcompat:appcompat:1.1.0implementation com.google.android.material:material:1.1.0implementation androidx.constraintlayout:constraintlayout:1.1.3testImplementation junit:junit:4.androidTestImplementation androidx.test.ext:junit:1.1.1androidTestImplementation androidx.test.espresso:espresso-core:3.2.0
}com.android.application表示这是一个应用程序模块 com.android.library表示这是一个库模块。二者最大的区别在于应用程序模块是可以直 接运行的库模块只能作为代码库依附于别的应用程序模块来运行。
applicationId com.jack.helloworld 是每一个应用的唯一标识符绝对不能重复默认会使用我们在创建项目时指定的包名
四、Android中的日志工具类Log
Log(android.util.Log)
Log.v()对应级别verbose日志信息
Log.d()对应级别debug调试信息
Log.i()对应级别info数据信息
Log.w()对应级别warn警告信息
Log.e()对应级别error错误信息
Log.d(HelloWorldActivity,onCreate excute);第一个参数是tag一般传入当前类名用于对打印信息过滤第二个参数是msg打印的具体内容