2012年01月20日星期五
Android IMF给输入软件的编写给出的规范,也提供了很多的方便。这里从例子程序SoftKeyboard来认识。
1、软键盘界面的设计,可以用XML文件来做,这真是很方便。
android.inputmethodservice.Keyboard Class能把XML键盘文件,转换成视图。
android.inputmethodservice.KeyboardView 感知用户触键,发送出事件信息,根据需要改换键面的显示。
2、Android 输入法程序都要继承InputMethodService类,这个类定义了输入程序的全部活动,如:
onCreate()
onInitializeInterface()
onCreateInputView() 生成键盘界面
onCreateCandidatesView() 生成候选框界面
onStartInput()
onFinishInput()
onUpdateSelection()
onKey()这里你得到输入键的信息,根据输入键与前面保留的输入状态,生成候选字词。
onKeyDown(), onKeyUp()
commitTyped() 完成输入一个字词。
等等。这些输入过程在微软与苹果上都是一样的。我在做iPhone/iPad上的独立输入程序时,所有这些过程都是自己分析设计的。
Android把输入过程中要考虑的事件都为定义在Class里,大大地方便了输入软件编程。
3、CandidateView
CandidateView 只是android.view 它在InputMethodService的onCreateCandidatesView()生成。依照Android IMF做出的输入法,能与Android系统中的应用程序,以及系统输入管理中心协调工作了。
在Mac OS X的IMKit中,CandidateView(候选框)是输入管理中心给的,输入法程序不需要做这部分的程序。
2012年01月21日
今天通过“Beginning Android Application Development” (Wrox Programmer to Programmer) by Wei Meng Lee这本书,继续了解Android平台所提供的功能,学习Android上的编程方法。书中介绍的Android平台的多数技术内容,我都或多或少知道,如:
Layout, Screen Orientation,
View, List View, Picture, Menu
SQLite, Saving and Loading User Preferences, Content Providers
Messageing, Networking, Service
等等,这些不同的平台(微软与苹果)都有相似的内容,差别不大。
有两个概念我是第一次在Android中见到:Activity,和Intent,这是Android平台编程的基本概念,是其它平台没有的概念。我在Java语言中没有找到这两个概念,这应该是Android的创新了。
Activity是application中定义有特定功能的一个图形界面,用户可以触摸来完成一定的功能。特别的是这个Activity可以被Android系统的其它Application调用。
这就是说每个Application安装到Android系统后,其中包括的Activity都要登记到Android系统中,这样才能让别的Application调用。
Intent:Application是通过Intent来调用Activity的,Intent就是代表Android系统来运行Activity的。
为了方便Intent找到Activity, 因此在定义Activity时,除了要给Activity名称外,还有
intent-filter应用用于Activity的归类,查找。
这两个概念要认真地理解。
Android还有个别出心裁的地方:在Android的multi-user Linux system中,每个application是一个different user. 以下摘自网页:http://developer.android.com/guide/topics/fundamentals.html
Application Fundamentals:
Once installed on a device, each Android application lives in its own security sandbox:
The Android operating system is a multi-user Linux system in which each application is a different user.
By default, the system assigns each application a unique Linux user ID (the ID is used only by the system and is unknown to the application). The system sets permissions for all the files in an application so that only the user ID assigned to that application can access them.
Each process has its own virtual machine (VM), so an application's code runs in isolation from other applications.
By default, every application runs in its own Linux process. Android starts the process when any of the application's components need to be executed, then shuts down the process when it's no longer needed or when the system must recover memory for other applications.
2012年01月22日(星期日)
上午看了2012央视春节晚会网上直播4个多小时,同祖国与世界华人一起欢欢乐乐地辞旧岁迎新年。
祝愿祖国风调雨顺,国泰民安!
祝愿全世界的华人新年快乐,吉祥如意!