5.1 Android项目

5.1 Android项目

我们用如何制作一个Android app来看一下一种典型的配置分离型(我自己起的名儿)项目。这种项目最大的特点就是有很多很多的配置文件,细细一捋大概分那么几块:界面(UI)、逻辑代码、资源文件、注册文件。

【假设你已经知道了安卓应用是用java(现在还可以用kotlin)写的,以及会那么一些java】

先来看一个安卓app的hello world

5.1.1 界面和逻辑

之前学过写网页的同学们可能知道一个网站程序分为前端和后端,前端的html、css这些负责界面,后端就可以用flask、django、node.js等等各种框架来实现。

那么在安卓这里呢,逻辑代码也就是后端,就是放在java/com.xxxxx的文件夹里的java代码。而UI代码放在res/layout里,是xml文件(对应html)。res文件夹就是存放各种资源文件的,我们一会再说。

项目文件目录

和网站一样,我们的app通常不会只有一个页面。安卓中每增加一个页面,layout文件夹下就要多出一个xml文件。相应的代码的文件夹下也要增加一个.java文件。在安卓中一个页面叫做一个Activity,这个Activity就包含了逻辑代码和页面。最开始出来的那个就叫MainActivity。

作为一个Activity,它有“生命周期”。在它刚刚出现的时候,叫Create(被创建);被暂停(跳到另一个页面)叫Pause;被销毁叫Destroy,等等。在被Create的时候,app会调用这个Activity的java代码中的onCreate函数,如果你重写了这个函数就会执行你写的代码。同理在其它时候会调用相应的onXXX函数。具体等你看教程的时候就知道了。

还有一种“后台服务”被称为Service,它和Activity相比,不同在它一般没有界面,是在后台运行的一段代码。Service和Activity为安卓四大组件的其中之二,另外两个一个叫BroadcastReceiver,就是用来接受广播的。一个Activity(或者系统)可以向外发射广播,另一个Activity(同应用或不同应用)可以有一个接收器(Receiver)来接收,收到广播后执行onReceive函数的代码;另一个叫ContentProvider,用来与其它程序共享数据。

在各个组件之间“路由”,也就是从这个组件跳到那个组件的工具,叫Intent,是安卓中非常重要的一个东西。缺了它就没法把页面连起来。

四大组件N大布局(UI布局)和五大(数据)存储

5.1.2 资源文件

资源文件放在res文件夹里,我们可以看到好几个文件夹,layout文件夹也包含在内,可以说布局(界面)文件也是一种资源文件,但是它比较特殊就单拿出来说了。资源文件,顾名思义是存放各种资源的,具体有图啊(/drawable),字符串啊(/value/string),颜色啊(/value/color),尺寸啊(/value/dimens)云云。

你可以给一个很长的字符串”hello, world! Ladies and gentlemen.”取个名字叫say_hi,然后在layout文件里调用的时候就直接写@string/say_hi,在java文件里调用就写R.string.say_hi。关于这个R我们一会再讲。

再比如我们用的有些app是多语言的,怎么实现呢?就是在res下建立多个value文件夹,命名格式是“value-语言代号”,例如简体中文就命名为value-zh-rCN,美式英文value-en-rUS,然后在string文件中,不同的say_hi内容不同。这样app就会根据系统语言选择对应语言。同理,不同的命名也可以区分不同的系统版本和不同的手机屏幕等等。

资源文件也是以xml来写的。

资源文件详解

5.1.3 配置文件

配置文件放在manifests文件夹下。每增加一个组件都要在这里写一堆东西注册,以及需要把你app要用到什么权限写在这里。这主要是告诉系统它这个app里面有什么,要用到什么,好让系统做好准备。这里就不展开讲了。

我们可以发现其实除了提到的三个文件夹,一个app项目中还有其它的文件夹,例如build文件夹,这些文件都是自己生成的,我们无需改动。其中在build文件夹下一个很深的地方就有一个很重要的文件叫R文件,它记录了所有的资源文件,所以我们才能在java代码里调用R.string.say_hi,才能通过R寻找布局文件中一个叫big的Button。相当于是前、后端的连接器。

5.1.4 关于怎么学

如果想要学安卓开发呢,我的建议是直接上手做app(前提是会一些java),然后查一下同类型app的做法跟着做。计算器、日历、天气之类的网上都有很多例子了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值