Android开发学习
学习资源
安卓应用的生命周期

| 回调 | 描述 |
|---|---|
| onCreate() | 这是第一个回调,在活动第一次创建时调用 |
| onStart() | 这个回调在活动为用户可见时被调用 |
| onResume() | 这个回调在应用程序与用户开始可交互的时候调用 |
| onPause() | 被暂停的活动无法接受用户输入,不能执行任何代码。当前活动将要被暂停,上一个活动将要被恢复时调用 |
| onStop() | 当活动不在可见时调用 |
| onDestroy() | 当活动被系统销毁之前调用 |
| onRestart() | 当活动被停止以后重新打开时调用 |

前置知识
assets中的文件无法直接访问,可以使用AssetManager访问。 android.content.Context
Android Studio也有类似javaWeb的那个Maven的,默认使用的是gradle 添加依赖的方法类似Maven
gradle 是目前非常流行的一个项目构建工具。 它并不局限于一种平台。
Gradle和Maven都是项目自动构建工具 虽然两者都是项目工具,但是maven现在已经是行业标准,Gradle是后起之秀,很 多人对他的了解都是从android studio中得到的,Gradle抛弃了Maven的基于XML的繁琐配置,众所周知XML的阅读体验比较差,对于机器来说虽然容易识别,但毕竟是由人去维护的。取而代之的是Gradle采用了领域特定语言Groovy的配置,大大简化了构建代码的行数
核心功能构建项目,管理jar包
Gradle使用一种基于Groovy的特定领域语言(DSL)来声明项目配置,抛弃了基于XML的各种繁琐配置。面向java应用为主。当前其支持的语言限于java,Groovy和Scala,计划未来将支持更多的语言
安卓开发中,不直接使用
System.out.print 来调试信息,而是使用
Log.d 来显示日志
使用例
Log.d("myMsg","hello");
前面的就是Tag,通过这个tag就能找到出现的Log
gradle-wrapper.properties设置为如下的
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=file:///F:/D:/JavaTools/gradle-6.3-all.zip
build.gradle设置为如下
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Demo
public class LifeCycleActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_life_cycle);
Log.d("LifeCycle","----onCreate----");
}
@Override
protected void onStart() {
super.onStart();
Log.d("LifeCycle","----onStart----");
}
@Override
protected void onResume() {
super.onResume();
Log.d("LifeCycle","----onResume----");
}
@Override
protected void onPause() {
super.onPause();
Log.d("LifeCycle","----onPause----");
}
@Override
protected void onStop() {
super.onStop();
Log.d("LifeCycle","----onStop----");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("LifeCycle","----onRestart----");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("LifeCycle","----onDestroy----");
}
}
Activity的创建三部曲
- 新建一个类去继承
Activity或其子类(现在是继承AppCompatActivity) - 在
AndroidManifest中声明 - 创建一个layout并在Activity的onCreate中设置
AndroidManifest
每个Activity都需要在这里注册(一般会自动生成),如果需要就在AndroidManifest里设置属性就好了
例如
<activity android:name=".ProgressActivity" android:label="这是自定义的标题"/>
- 设置标题名称
android:label="这是自定义的标题"
- 去除顶部导航(如果要全局的话在
application里加上这个属性就好了)
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"
- 竖屏显示 把手机横过来也不会转
android:screenOrientation="portrait"
- 设置默认启动的Activity(在元素里面包着这个就可以了,但是一个项目只能有一个)
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Groovy编程语言
print("Hello Groovy");
// 可以省略分号,和括号
print "Hello Groovy"
Groovy中定义变量
//def 是弱类型的,groovy会自动根据情况给变量赋予对应的类型
def i = 18
print i
// 定义一个集合类型
def list = ['a','b']
// 往list中添加元素
list << 'c'
// 取出元素
print list.get(2)
//定义一个map
def map = ['key1':'value1','key2':'value2']
//向map添加元素
map.key3='value3'
// 取出元素
print map.get('key3')