android输入法开发软件,开发安卓系统Android和码输入法软件的全过程(二)
2012年01月20日星期五
Android IMF給輸入軟件的編寫(xiě)給出的規(guī)范,也提供了很多的方便。這里從例子程序SoftKeyboard來(lái)認(rèn)識(shí)。
1、軟鍵盤(pán)界面的設(shè)計(jì),可以用XML文件來(lái)做,這真是很方便。
android.inputmethodservice.Keyboard Class能把XML鍵盤(pán)文件,轉(zhuǎn)換成視圖。
android.inputmethodservice.KeyboardView 感知用戶觸鍵,發(fā)送出事件信息,根據(jù)需要改換鍵面的顯示。
2、Android 輸入法程序都要繼承InputMethodService類(lèi),這個(gè)類(lèi)定義了輸入程序的全部活動(dòng),如:
onCreate()
onInitializeInterface()
onCreateInputView() 生成鍵盤(pán)界面
onCreateCandidatesView() 生成候選框界面
onStartInput()
onFinishInput()
onUpdateSelection()
onKey()這里你得到輸入鍵的信息,根據(jù)輸入鍵與前面保留的輸入狀態(tài),生成候選字詞。
onKeyDown(), onKeyUp()
commitTyped() 完成輸入一個(gè)字詞。
等等。這些輸入過(guò)程在微軟與蘋(píng)果上都是一樣的。我在做iPhone/iPad上的獨(dú)立輸入程序時(shí),所有這些過(guò)程都是自己分析設(shè)計(jì)的。
Android把輸入過(guò)程中要考慮的事件都為定義在Class里,大大地方便了輸入軟件編程。
3、CandidateView
CandidateView???????? 只是android.view 它在InputMethodService的onCreateCandidatesView()生成。依照Android IMF做出的輸入法,能與Android系統(tǒng)中的應(yīng)用程序,以及系統(tǒng)輸入管理中心協(xié)調(diào)工作了。
在Mac OS X的IMKit中,CandidateView(候選框)是輸入管理中心給的,輸入法程序不需要做這部分的程序。
2012年01月21日
今天通過(guò)“Beginning Android Application Development” (Wrox Programmer to Programmer)???????? by Wei Meng???????? Lee這本書(shū),繼續(xù)了解Android平臺(tái)所提供的功能,學(xué)習(xí)Android上的編程方法。書(shū)中介紹的Android平臺(tái)的多數(shù)技術(shù)內(nèi)容,我都或多或少知道,如:
Layout, Screen Orientation,
View, List View, Picture, Menu
SQLite, Saving and Loading User Preferences, Content Providers
Messageing, Networking, Service
等等,這些不同的平臺(tái)(微軟與蘋(píng)果)都有相似的內(nèi)容,差別不大。
有兩個(gè)概念我是第一次在Android中見(jiàn)到:Activity,和Intent,這是Android平臺(tái)編程的基本概念,是其它平臺(tái)沒(méi)有的概念。我在Java語(yǔ)言中沒(méi)有找到這兩個(gè)概念,這應(yīng)該是Android的創(chuàng)新了。
Activity是application中定義有特定功能的一個(gè)圖形界面,用戶可以觸摸來(lái)完成一定的功能。特別的是這個(gè)Activity可以被Android系統(tǒng)的其它Application調(diào)用。
這就是說(shuō)每個(gè)Application安裝到Android系統(tǒng)后,其中包括的Activity都要登記到Android系統(tǒng)中,這樣才能讓別的Application調(diào)用。
Intent:Application是通過(guò)Intent來(lái)調(diào)用Activity的,Intent就是代表Android系統(tǒng)來(lái)運(yùn)行Activity的。
為了方便Intent找到Activity, 因此在定義Activity時(shí),除了要給Activity名稱(chēng)外,還有
intent-filter應(yīng)用用于Activity的歸類(lèi),查找。
這兩個(gè)概念要認(rèn)真地理解。
Android還有個(gè)別出心裁的地方:在Android的multi-user Linux system中,每個(gè)application是一個(gè)different???????? user. 以下摘自網(wǎng)頁(yè):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央視春節(jié)晚會(huì)網(wǎng)上直播4個(gè)多小時(shí),同祖國(guó)與世界華人一起歡歡樂(lè)樂(lè)地辭舊歲迎新年。
祝愿祖國(guó)風(fēng)調(diào)雨順,國(guó)泰民安!
祝愿全世界的華人新年快樂(lè),吉祥如意!
總結(jié)
以上是生活随笔為你收集整理的android输入法开发软件,开发安卓系统Android和码输入法软件的全过程(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: coreldraw凹槽_CATIA课时:
- 下一篇: 07-白盒测试方法-逻辑覆盖法