Android开发学习教程(2)- 详解Hello World

0 922

—— 你是活了一万多天?还是活了一天 却重复了一万多次?

上一篇我们成功运行了Hello World,现在我们详细来看看项目结构和运行过程或者说运行流程。

项目结构

Android开发学习教程(2)- 详解Hello World

1. AndroidManifest.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<manifest
    package="com.example.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"
            android:exported="true"
            android:label="@string/app_name"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" ></action>
                <category android:name="android.intent.category.LAUNCHER" ></category>
            </intent-filter>
        </activity>
    </application>
</manifest>

xmlns:android:定义android命名空间,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。

package:指定本应用内java主程序包的包名,它也是一个应用进程的默认名称。

application:一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件及其属性(如icon、label、permission等)。

allowBackup:当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。

icon:这个很简单,就是声明整个APP的图标,图片一般都放在drawable文件夹下。

roundIcon:同上,唯一区别它是圆形的图标,如果配置了此项,APP安装在Android 7.1.1以上的手机显示的就是圆形图标。

label:声明整个APP的名字,字符串常量一般都放在values文件夹下的strings.xml里。

supportsRtl:支持从右往左显示的布局(正常布局在镜子里面看到的左右对调过的样子)。

theme:是一个资源的风格,它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它,有点类似style。

activity:定义APP中的一个组件Activity。

name:该Activity的名字。

screenOrientation:该Activity的屏幕方向。

intent-filter:广播过滤器,后续会讲到。

action android:name:指定程序入口Activity,在这里是MainActivity。

category android:name:指定当前动作(Action)被执行的环境。这里的CATEGORY_LAUNCHER决定应用程序是否显示在程序列表里。

2. java文件夹

该文件夹是放项目的源代码。我们来看MainActivity.java的源码

1
2
3
4
5
6
7
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act_main);
    }
}

这里我们暂时只看第⑤行,这一句的意思就是将布局文件act_main设置为该Activity的视图,也就是说MainActivity打开后显示的页面就是act_main。

3. res文件夹

程序资源目录。包含三个子目录:drawabel、layout、values。

drawabel:程序里所有的图片、形状。

layout:每个Activity界面对应的布局文件。我们来看看MainActivity的布局文件act_main.xml:

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World" />
</LinearLayout>

这里暂时只看第7行到第11行,可以理解为一个显示Hello World的标签。

values:程序中的文字strings.xml、大小dimens.xml、颜色colors.xml、风格styles.xml等。例如上面act_main布局文件中的Hello World文字就可以定义在strings.xml中,如下:

1
2
3
<resources>
    <string name="text_hello">Hello World</string>
</resources>

文字如果定义在了strings.xml中,那么布局文件中显示文字时使用@string/后面跟上文字对应的name来表示,如下:

1
2
3
4
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/text_hello" />

再比如我们还可以设置文字的颜色为红色,我们可以这样设置,在colors.xml(如果没有可以新建一个文件)中定义:

1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="tv_red">#ff0000</color>
</resources>

然后在布局文件中设置文字的颜色为@color/后面跟上颜色对应的name,如下:

1
2
3
4
5
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/text_hello"
    android:textColor="@color/tv_red" />

4. Gradle Scripts文件

这个文件夹下面都是项目编译和构建的一些配置,读者可以暂时跳过这些配置,下一篇章会着重解释。

运行过程/运行流程

Android程序会先去加载AndroidMainfest.xml文件,接着去找到application标签下intent-filter action android:name="android.intent.action.MAIN"的Activity作为第一个Activity启动,启动后会先调用Activity的onCreate函数,而我们在此函数中通过setContentView设置了视图act_main,所以最终我们在手机屏幕上看到的是MainActivity页面上显示的Hello World文字。

 

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章资源,如无特殊说明或标注,均为本站网友和创作者贡献分享。如若本站内容侵犯了原著者的合法权益,可联系网站客服QQ2743319061删除。

云炬星球 安卓教程 Android开发学习教程(2)- 详解Hello World https://src.yunjunet.cn/876692.html

常见问题
  • 放心亲,我们不会为了几十块钱的东西坏了名声!
查看详情
  • 方法一:点击“立即下载.”按钮,付款后在下载弹窗的虚线框的隐藏信息里获取 方法二:在正文底部使用VIP查看隐藏的解压密码 方法三:联系【云炬网络】公众号客服获取
查看详情
  • 付款后会出现“立即下载”按钮(点击即可下载),如果下载失败也可以联系客服发订单截图补发。
查看详情
  • 登录购买会多端同步购买记录,永久可以查看反复下载;非登录购买仅将购买记录保存到本地浏览器中,浏览器cookie清除后无法再次下载。先右上角点登录,然后点击微信图标可以快速授权注册登录^_^
查看详情
  • 可以试看。点击”查看演示“或“试看预览”按钮可以试读从资料目录中节选的部分内容,也可以自己指定想试看的内容。
查看详情
  • 原因一:本站所有资源已开启有效性检测(服务器24h全自动监测),当监测到下载链接无法访问时会提示“该资源已失效,请勿购买”,遇到这种情况可以联系客服修复失效的下载链接,或直接联系客服在淘宝下单购买即可。(检测原理:购买前服务器程序会预访问下载链接,响应值为200说明资源有效允许购买,响应值为404或502等报错说明资源失效禁止购买)。原因二:上传者未启用“下载”选项。
查看详情
官方客服团队

为您解决烦忧 - 24小时在线 专业服务