解析
一 程序启动后,首先启动的活动
- AndroidManifest.xml
123456789101112<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里注册的活动是不能使用的其中:```xml<action android:name="android.intent.action.MAIN" /> <category adroid:name="android.intent.category.LAUNCHER"/>这两行代码
表示HelloWorldActivity是这个项目的主活动,在手机上点击应用图标,首先启动的就是这活动 - HelloWorldActivity活动
所有Android应用程序的门面,凡是在应用中看得到的东西,都是放在活动中的
1234567public class HelloWorldActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle saveInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.hello_world_layout);}}首先,HelloWorldActivity 是继承自 AppCompatActivity,这是一种向下兼容的Activity,可以将在各个系统版本中增加的特性和功能最低兼容到Android 2.1系统
而Activity是Android系统提供的一个活动基类,我们项目中的所有活动都必须继承它或者它的子类才能拥有活动的特性
onCreate()方法是一个活动被创建时必定要执行的方法
Hello World!是怎么显示出来的
- 文件分离
Android程序的设计讲究逻辑和视图分离,因此不推荐在注册活动中直接编写界面
通用的做法是:
在布局文件中编写界面,然后在活动中引入进来 - setContentView()
这个方法用来给当前的活动引入一个布局
上面的代码中,它通过传参R.layout.hello_world_layout引入了一个布局
那么,不难猜测,程序最后显示出来的Hello World!,应该编写在该布局文件中了
我们看看这个布局文件中的内容:
布局文件都是定义在res/layout目录下的,我们打开hello_world_layout.xml
1234567891011121314<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/hello_world_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"tools:context="com.example.helloworld.HelloWorldActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!" /></RelativeLayout>
res
- 打开res/values/strings.xml
123<resources><string name="app_name">HelloWorld</string></resources> - 引用方式
- 在代码中通过R.string.hello_world可以获得该字符串的引用
- 在xml里通过@string/hello_world
12345678<applicationandroid:allowBackup="true"android:icon_"@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme">...</application>其中:
HelloWorld项目的应用图标就是通过android:icon属性来指定的
应用的名称则是通过android:label属性指定的
本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 应用开发特色10/02
- ♥ Android10/02
- ♥ 深入理解C++11:C++11新特性解析与应用 一12/21
- ♥ 【AcWing 语法基础课 第四讲】02/23
- ♥ SVN:管理工程10/14
- ♥ CLion:配置C++下Nasm开发环境(debian)08/06