01-分析第一个Android程序

01. .gradle和.idea
这两个目录下放置的都是Android Studio自动生成的一些文件,我们无须关心,也不要去
手动编辑。

02. app
项目中的代码、资源等内容都是放置在这个目录下的,我们后面的开发工作也基本是在这
个目录下进行的。

03. build
这个目录主要包含了一些在编译时自动生成的文件,你也不需要过多关心。

04. gradle
这个目录下包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前
将gradle下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle。
Android Studio默认就是启用gradle wrapper方式的,如果需要更改成离线模式,可以
点击Android Studio导航栏→File→Settings→Build, Execution,
Deployment→Gradle,进行配置更改。

05. .gitignore
这个文件是用来将指定的目录或文件排除在版本控制之外的。

06. build.gradle
这是项目全局的gradle构建脚本,通常这个文件中的内容是不需要修改的。

07. gradle.properties
这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编
译脚本。

08. gradlew和gradlew.bat
这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在Linux或Mac系统
中使用的,gradlew.bat是在Windows系统中使用的。
09. HelloWorld.iml
iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件(Android Studio是基于IntelliJ
IDEA开发的),用于标识这是一个IntelliJ IDEA项目,我们不需要修改这个文件中的任何
内容。
10. local.properties
这个文件用于指定本机中的Android SDK路径,通常内容是自动生成的,我们并不需要修
改。除非你本机中的Android SDK位置发生了变化,那么就将这个文件中的路径改成新的
位置即可。
11. settings.gradle
这个文件用于指定项目中所有引入的模块。由于HelloWorld项目中只有一个app模块,因
此该文件中也就只引入了app这一个模块。通常情况下,模块的引入是自动完成的,需要我
们手动修改这个文件的场景可能比较少。

<activity android:name=".MainActivity">
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
</activity>

这段代码表示对MainActivity进行注册,没有在AndroidManifest.xml里注册的Activity是不
能使用的。

其中intent-filter里的两行代码非常重要,<action android:name="android.intent.action.MAIN"/> 和<category android:name="android.intent.category.LAUNCHER" />表示MainActivity是这个项目的主Activity,在手机上点击应用图标,首先启动的就是这个Activity。

那MainActivity具体又有什么作用呢?Activity是 Android应用程序的门面,凡是在应用中你看得到的东西,都是放在Activity中的。

class MainActivity : AppCompatActivity() {
 override fun onCreate(savedInstanceState: Bundle?) {
 super.onCreate(savedInstanceState)
 setContentView(R.layout.activity_main)
 }
}

首先可以看到,MainActivity是继承自AppCompatActivity的。AppCompatActivity是AndroidX中提供的一种向下兼容的Activity,可以使Activity在不同系统版本中的功能保持一致性。而Activity类是Android系统提供的一个基类,我们项目中所有自定义的Activity都必须继承它或者它的子类才能拥有Activity的特性(AppCompatActivity是Activity的子类)。然后可以看到MainActivity中有一个onCreate()方法,这个方法是一个Activity被创建时必定要执行的方法,其中只有两行代码,并且没有“Hello World! ”的字样。

其实Android程序的设计讲究逻辑和视图分离,因此是不推荐在Activity中直接编写界面的。一
种更加通用的做法是,在布局文件中编写界面,然后在Activity中引入进来。可以看到,在
onCreate()方法的第二行调用了setContentView()方法,就是这个方法给当前的Activity
引入了一个activity_main布局,那“Hello World!”一定就是在这里定义的了!

布局文件都是定义在res/layout目录下的,当你展开layout目录,你会看到activity_main.xml这个文件。

<androidx.constraintlayout.widget.ConstraintLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".MainActivity">
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Hello World!"
 app:layout_constraintBottom_toBottomOf="parent"
 app:layout_constraintLeft_toLeftOf="parent"
 app:layout_constraintRight_toRightOf="parent"
 app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农的大哥

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值