第一行代码(记录自己的学习)
本篇,主要简介了安卓开发的大致语法。
也是自己学习的一次记录。
共勉!!!
代码一:AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.gq.myapplication" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity android:name=".MainActivity" >
<!--寻找到MainActivity这个活动的-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!--在MainActivity这个活动中定义:为程序进入主活动-->
<category android:name="android.intent.category.LAUNCHER" />
<!--声明程序启动时,首先调用改活动-->
</intent-filter>
</activity>
<!--安卓程序中的所有活动必须在AndroidManifest.xml中注册!-->
</application>
</manifest>
代码二:MainActivity.java
package com.example.gq.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
/*在MainActivity中主动继承了AppCompatActivity 这个类(该类为Activity的子类)
使向下兼容的Activity,能在各个系统版本中将功能与特性最低兼容到Android2.1系统*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*对savedInstanceState)
当一个Activity在PAUSE时,被kill之前,它可以调用onSaveInstanceState()
来保存当前activity的状态信息(在paused状态时,要被KILLED的时候)。
用来保存状态信息的Bundle会同时传给两个method,即onRestoreInstanceState() and onCreate().*/
setContentView(R.layout.activity_main);
/*引入R.layout.activity_main.xml这个布局*/
}
}
代码三:activity_mian.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.gq.myapplication.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="good luck!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!--布局文件相对简单,下次看布局的时候详细记录-->
</android.support.constraint.ConstraintLayout>
代码四:strings.xml
<resources>
<string name="app_name">My Application</string>
<!--在strings.xml文件中,可以将程序中所有的字符串从这里进行声明-->
<!--方便日后程序的翻译(国际化)和校对工作-->
</resources>
代码五:根目录下的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
/*jcenter是一个代码托管仓库,很多的Android开源项目都会选择将代码托管到
jcenter,声明了该配置,我们就可以轻松的引用jcenter上的开源项目*/
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
/*这里是声名一个Gradle插件(Gradle插件是对应Java,C++,Android很多种程序开发)
* 到现在为止Gradle 是依然还是 Android 现在主流的编译工具*/
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
代码六:app目录下的build.gradle
apply plugin: 'com.android.application'
/*这里也是应用一个插件
* 一般这里有两种值可以选择:com.android.application表示的是一个应用程序模块
* c com.android.library表示这是一个库模块
* 应用程序模块与库模块最大的区别在于,一个是可以直接运行的,一个只能作为代码
* 库依赖别的应用程序模块来运行*/
android { //Android闭包
compileSdkVersion 26 //指定项目的编译版本
buildToolsVersion "26.0.0" //指定项目构建工具的版本
defaultConfig { //defaultconfig
applicationId "com.example.gq.myapplication" //指定项目包名
minSdkVersion 15 //项目最低兼容的Android版本,表示an
targetSdkVersion 26 //表明软件进行过测试,数值越高。表明测试越充分,系统对应提供的权限越多
versionCode 1 //指定项目的版本号
versionName "1.0" //指定项目的版本名
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug{ //一般用来指定生成测试版本安装文件的配置
}
release { //指定生成正式版安装文件的配置
minifyEnabled false //是否对代码进行混淆(true表示混淆,false表示不进行混淆)
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
/*proguardFiles表示指定混淆时使用的规则文件(默认的proguard-android.txt文件在Android SDK目录下,
包含所有项目通用的混淆规则
proguard-rules.pro在当前目录下,里面可以编写当前项目特有的混淆规则)*/
//注意的是在Android Studio中直接运行的项目生成的都是测试版的安卓安装文件
}
}
}
dependencies { //dependencies 闭包 指定项目所有的依赖关系(本地依赖:本地jar包,库依赖:库模块,远程依赖:jcenter)
compile fileTree(dir: 'libs', include: ['*.jar']) //本地依赖,将libs目录下的所有.jar结尾的文件都添加到项目的构建路经中
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+' //远程依赖,appcompat-v7:26。+是一个标准的云彩依赖库com.android.support是域名部分
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12' //声明测试用例库
}