切换项目结构模式java
Project模式的项目结构android
咱们将项目切换成Project模式,这就是真实的目录结构。git
这个项目的目录介绍完毕了,除了app目录以外的,大多数的文件和目录都是自动生成的,app目录才是咱们的重点。app
这样整个项目的目录结构就介绍完了。ide
接下来咱们一块儿分析一下HelloWorld项目到底是怎么运行起来的吧。首先打开AndroidManifest.xml文件,从中能够看到以下代码。布局
<activity android:name=".HelloWorldActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
这段代码标示对HelloWorldActivity这个活动进行注册,没有在AndroidManifest.xml里注册的活动是不能使用的。
其中intent-filter里的两行代码很是重要,
<action android:name="android.intent.action.MAIN" />
和<category android:name="android.intent.category.LAUNCHER" />
标示HelloWorldActivity是这个项目的主活动,在手机上点击应用图标,首先启动的就是这个活动。测试
咱们来看下HelloWorldActivity这个活动。代码以下所示:
~~~
public class HelloWorldActivity extends AppCompatActivity {gradle
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.hello_world_activity); }
}
~~~
首先咱们能够看到,HelloWorldActivity是继承自AppCompatActivity的,这是一种向下兼容的Activity,能够将Activity在各个系统版本中增长的特性和功能最低兼容到Android2.1系统。Activity是Android系统提供的一个活动的基类,咱们项目中全部的活动都必须继承它或者他的子类才能拥有活动的特性(AppCompatActivity是Activity的子类)。而后能够看到HelloWorldActivity中拥有一个onCreate()方法,这个方法是一个活动呗建立时一定要执行的方法。其中两行代码并无Hello World!字样,那么程序中显示的Hello World!是在哪里定义的呢?
其实Android程序的设计讲究逻辑与视图分离,所以是不推荐在活动中直接编写界面的,更加通用的一种作法是,在布局文件中编写界面,而后在活动中引入进来。能够看到,在onCreate()方法的第二行调用了setContentView()方法,就是这个方法给当前的活动引入了一个hello_world_layout布局。
布局文件都定义在res/layout目录下的,打开hello_world_layout.xml文件并切换到Test视图,代码以下所示ui
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.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=".HelloWorldActivity"> <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" /> </android.support.constraint.ConstraintLayout>
你看到就能够了,后面咱们会对布局进行详细讲解的。
这样咱们就将HelloWorld项目的目录结构以及基本的执行过程都分析完了。idea
本文由博客一文多发平台 OpenWrite 发布!