安卓开发第二弹_第一个安卓项目
1创建空活动
create a new project,选择empty activity
修改相关信息
出现问题
点击use…那些蓝字,自动下载
完成的样子
2启动模拟器
点击ADV manager,可以看到已经创建了一部虚拟手机
点击绿色运行按钮,可以安装
完成之后手机就出来啦
3运行程序
点击绿色的三角形,运行程序
3.1模拟器上运行
设备选择成虚拟设备,运行效果如下
3.2手机上运行
在实际手机上运行首先要开启通过进入开发者模式,启用usb调试
选择设备,运行即可
4代码的简单讲解
4.1 整个项目的基本介绍
将目录切换成project形式,如下
其中大部分都是自动生成的,我们重点关注app目录
4.2 app文件夹的介绍
app的文件树如下:
目录 | 作用 |
---|---|
build | 自动生成的,不用过分关心 |
libs | 使用第三方的jar库,添加到这里面,会自动添加到构建路径 |
androidTest | 测试用例,做一些自动化测试 |
main | 主要文件在里面,后面再介绍 |
test | 也是用来做一些自动化测试 |
build.gradle | 构建脚本,项目的很多配置都在里面指定 |
4.3 main文件夹相关介绍
main的主要内容如下
目录 | 作用 |
---|---|
java | 放置java代码的地方,创建的主活动在其中 |
res | 相关的资源堵在这个目录下 |
AndroidManifest.xml | 整个项目的配置文件,定义的四大组件都需要在这个文件里面注册 ,同时进行 权限声明 |
4.4 res文件夹讲解
res文件树如下
文件夹 | 作用 |
---|---|
drawable | 图片文件 |
layout | 布局文件 |
mipmap | 图标文件,有不同的分辨率,一般放在xxhdpi |
values | 字符串,颜色,样式的配置 |
例如字符串,srtring.xml
<resources>
<string name="app_name">Project1</string>
</resources>
在代码中可以通过R.string.app_name
在xml中可以通过"@string/app_name"调用.
4.5 具体代码讲解
4.5.1 AndroidManifest.xml|
其中关键代码如下:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
intent-filter两行代码表明,MainActivity是主活动,在程序启动时进入该活动
4.5.2 主活动代码
主要代码如下
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
oncreate()是活动创建时执行的函数,必须有,而安卓开发讲究逻辑与视图分离,在布局文件中,编写布局,然后在活动文件中引入。在oncreate()方法中使用setcontentview(),引入布局文件。
4.5.3 布局文件
布局文件如下,定义了控件,有文本的内容,以及位置和大小的设置。
4.5.4 build.gradle文件的详解
1.外层的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()
}
}
主要声明了gradle插件的版本信息,一般情况下不需要修改,除非做一些全局项目配置。
2.内层的build.gradle
plugins存在两种选择,application和library,前者可以直接运行,后者只能作为代码库依托于别的应用程序模块执行。
plugins {
id 'com.android.application'
}
android闭包
- defaultconfig
applicationid是包名,targetsdkversion指定的值表明你在该目标版本做过充分的测试。versioncode和versionname指定版本,生成安装文件很重要。 - debug是对测试版本的配置,release是对正式版本的配置,先pass吧
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.example.project1"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies,指定当前项目的所有依赖关系(本地依赖,库依赖,远程依赖)。
dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
这个出现了版本更新,依赖添加以后要注意!