Android系统开发⼊门
Android操作系统
  Android是⼀个基于Linux、使⽤java作为程序接⼝的操作系统。
  他提供了⼀些⼯具,⽐如编译器、调试器、还有他⾃⼰的仿真器(DVM — Dalvik Virtual Machine)。
  Android是由google领导的Open Handset Alliance开发的。
  Android使⽤的虚拟机⽐较特别。Dalvik使⽤了⼀些特别的⽅法。你在Android上不能运⾏普通的Java程序。
  Android提供了⼀个dx的⼯具,可以把普通的Java类⽂件转换为dex(Dalvik Executable)⽂件。
  Android程序最后通过aapt(Android Asset Packaging Tool)程序来打包成⼀个.apk⽂件。
  Eclipse下⾯的ADT可以⾃动将class转换为dex,然后在发布的时候打包成apk⽂件。
  Android⽀持2D和3D的openGL图形库,⽀持SQLite数据库。
  每⼀个Android程序都运⾏在Android系统分配的⼀个独⽴的空间内,所以每个程序都不会影响和破坏到其他的程序,这是很安全的。
⼀些重要的Android组件
  ⼀个Android程序由下⾯这些部分组成。
Activity:代表了Android程序的展现层,⽐如⽤户看到的界⾯。⼀个Android程序可能会有⼏个Activities,在程序运⾏过程中也会切换。
Views:⼀个Activities的⽤户界⾯是继承⾃android.view.View。views的布局通过android.view.ViewGroups来管理。
Services:不需要UI展现的后台任务。可以通过android的提醒框架给⽤户提⽰。
Content Provider:为程序提供数据,通过Content Provider你的程序可以与别的程序共享数据。Android的SQLite数据库可以看做⼀个Content Provider。
Intents:是⼀个异步的消息系统,可以从别的系统或服务获取数据。程序可以直接调⽤⼀个服务或者activity,也可以请求android系统。
Broadcast Receiver:接受系统消息或者隐含的intent,可以根据系统的改变做出反应。⼀个程序可以注册成为某些事件的Broadcast Receiver,当事件发⽣时,程序就执⾏。
  安全和许可
  Android对⼀些任务有特别的许可。例如⼀个程序需要使⽤Internet,那么就需要在他的配置⽂件中获取相应的许可。在安装过程中,⽤户可以确认这个程序是否取得相应的许可。
  l
  每⼀个Android程序都通过l来描述。这个⽂件中必须声明所有的activity、services、broadcast receiver、以及Content provider。也需要包含程序需要的许可。例如,如果程序需要访问⽹络,就必须声明。“l”可以认为是Android程序的部署声明。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="schemas.android/apk/res/android"
package="kux"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Convert"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="9" />
</manifest>
  package属性定义基础库。他必须是唯⼀的。所以⽐较好的处理办法就是使⽤你⾃⼰的域名的倒序,防⽌冲突。
  “android:versionName” 和”android:versionCode”⽤来表明你的程序的版本。versionName可以是任意的字符串⽤来给⽤户看
的,versionCode必须是整数,这是菜市场⽤来判断你的程序是否更新的⼀个标志。通常从1开始,然后发布⼀个新版本就+1。
  “activity”定义了这个类下⾯的动作。
  “uses-sdk”属性⽤来确定你的程序需要的SDK的最低版本,防⽌你的程序被安装在不被⽀持的SDK上。
  R.java Resources 以及Assets
  Android项⽬中的gen⽬录包含⼀些⽣成的⽂件。⽣成的“R.java”包含了项⽬中的res⽂件中的资源⽂件。这些资源部署在res⽂件夹的可以是菜单、布局图标、图⽚、动画等等。例如,⼀个资源⽂件可以是⼀个图⽚或者⼀些包含了某些字符串的XML⽂件。
  如果你创建了⼀个新的资源,那么他就⾃动创建在R.java中。他的引⽤是⼀个整型值,Android系统有⼀些⽅法可以访问到这个资源。⽐如可以通过getString(urString)来访问你的字符资源的引⽤,但是最好不要去改动R.java。
  assets中可以存放任何类型的数据,在java中你可以通过AssetsManager以及getAssets()⽅法来访问。
  动作(activities)和布局(layout)
  动作的⽤户界⾯通过布局来确定。layout是android.view.ViewGroups的⼀个实例。layout定义了UI元素,他们的属性以及摆放位置。UI 元素基于android.view.View。
  布局可以通过java代码或者xml⽂件来定义。在你不知道内容的时候可以使⽤java代码布局,⽐如你的内容是从⽹上获取到的数据。
  基于XML的布局定义在/res/layout中。这些⽂件描述了视图组、视图、以及他们的关系和具体的属性。如果⼀个UI元素需要通过java代码访问,那么你就需要通过android.id来赋予这个元素⼀个唯⼀的id。
  通过XML定义布局是⽐较推荐的⼀种⽅式,可以将视图和程序的逻辑分离,⽐较好管理⼀些。
  动作(activities)和⽣命周期(lifecycle)
  操作系统控制着程序的⽣命周期。操作系统可以在任何时候中断程序,⽐如有来电了。Android对于动作有⼀些预先定义的关于⽣命周期的⽅法,⽐较重要的是:
onSaveInstanceState():如果动作停⽌就会调⽤。⽤来存储数据,好让重新启动的时候恢复到原来的状态。linux和安卓的关系
onPause():在动作结束的时候触发,⽤来释放资源和存储数据。
onResume():在动作重启的时候触发,⽤来初始化程序
  上下⽂
  t.Context类提供了与系统通信的⽅法。他是程序的全局信息的⼀个接⼝。Contexts提供了getSystemService⽅法可以⽤来接收不同硬件的消息。作为动作和服务,你可以直接通过this来访问。
  转载请注明:
  作者:
  出⾃:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。