Android的启蒙 小白就得进Android工程师

/ 闽江学院经济学院Android工程师 / 2017-03-29

Android操作系统

Android是一个基于Linux、使用java作为程序接口的操作系统。他提供了一些工具,比如编译器、调试器等。Android是由google领导的由Open Handset Alliance开发的。

 

Android支持SQLite数据库,支持2D和3D的openGL图形库。

每一个Android程序都运行在Android系统为其分配的一个独立空间中,所以每个程序都不会被影响与破坏,这是极其安全的。

 

接下来介绍一些重要的Android组件


Android程序由下面这些组成。


Activity:代表了Android程序的展现层。一个Android程序会有几个Activities,在程序运行过程中也会被切换。

 

Services:可以直接通过android的提醒框架给用户提示。不需要UI展现后台任务。

 

Intents:是一个异步的消息系统,可以从别的服务或者系统获取数据。程序可以直接调用activity或者一个服务或者,也可以请求android系统。

 

Content Provider:为程序提供数据,通过Content Provider能够使你的程序可以共享别的程序共享数据。Android的SQLite数据库可以看做一个Content Provider。

 

Broadcast Receiver接受系统消息或者隐含的intent,可以根据系统的改变做出相对应的反应。一个程序可以注册成为某个事件的Broadcast Receiver,当事件发生时,程序就执行。

 

Views:一个Activities的用户界面是继承自android.view.View。views的布局通过android.view.ViewGroups来管理。

 

Android所使用的虚拟机会比较特别。Dalvik使用了一些特别的方法。你在Android上不能运行普通的Java程序。Android提供了一个dx的工具,可以把普通的Java类文件转换为dex(Dalvik Executable)文件。Android程序最后通过aapt(Android Asset Packaging Tool)程序来打包成一个.apk文件。Eclipse下面的ADT可以自动将class转换为dex,然后在发布的时候打包成apk文件。

 

安全和许可

Android对一些任务有特别的许可。在安装的过程中,用户可以确认该程序是否已经取得相应的许可。

 

AndroidManifest.xml

每一个Android程序都通过AndroidMainfest.xml来描述。这个文件中必须声明所有的activity、broadcast 、Content provider以及receiverservices。同时也需要包含程序所需要的许可。例如,如果程序需要访问网络,就必须声明。“AndrManifest.xml”可以认为是Android程序的部署声明。

Android,Android组件,Android操作系统,汇鱼网

package属性定义基础库。他必须是唯一的。所以比较好的处理办法就是使用自己的域名倒序,防止域名冲突。


“android:versionName”与”android:versionCode”用来表明你编写程序的版本。versionName可以是任意的字符串其主要作用是用来给用户看的,versionCode一定要是整数,这是用来判断你的程序是否更新的一个标志。通常从1开始,然后发布一个新版本就+1。


“uses-sdk”属性用来确定你的程序需要的SDK的最低版本,防止你的程序被安装在不被支持的SDK上。


“activity”定义了这个类下面的动作。

 

R.java Resources 以及Assets


Android项目中的gen目录包含一些生成的文件。生成的“R.java”包含了项目中的res文件中的资源文件。这些资源部署在res文件夹的可以是布局图标、图片、菜单等等。如果你创建了一个新的资源,那么他就自动创建在R.java中。他的引用是一个整型值。

  

assets中可以存放任何类型的数据,java中你可以通过AssetsManager以及getAssets()方法来访问。

 

动作(activities)和生命周期(lifecycle)


操作系统控制着程序的生命周期。操作系统可以在任何时候中断程序。Android对于动作的生命周期有一些预先定义,比较重要的是:

onResume():在动作重启的时候触发,用来初始化程序


onPause():在动作结束的时候触发,用来释放资源和存储数据。


onSaveInstanceState():如果动作停止就会调用。用来存储数据,方便重新启动的时候恢复到原来的状态。

 

动作(activities)和布局(layout)


动作的用户界面通过布局来确定。layout是android.view.ViewGroups的一个实例。layout定义了UI元素,他们的属性以及摆放位置。UI元素基于android.view.View。


布局可以通过java代码或者xml文件来定义。在你不知道内容的时候可以使用java代码布局。


基于XML的布局定义在/res/layout中。这些文件描述了视图组、视图他们的关系以及具体的属性。如果一个UI元素需要通过java代码访问,那么你就需要通过android.id来赋予这个元素一个唯一的id。通过XML定义布局是较推荐的一种方式,它可以将程序与视图逻辑分离,这样会比较好管理。


最后,希望这篇文章对那些想学习Android的小白有所帮助!


公众号,微信

汇鱼网海峡创乐汇
汇鱼网海峡创乐汇