編輯:Android開發實例
入法。 見圖
整個過程涉及到了一系列自己不熟悉的東西,為此走了些彎路,其中:
Android編譯系統
手寫引擎用的是漢王, 漢王整個是用匯編實現, 這裡采用的編譯方法是先將漢王編程靜態庫,再編成動態庫。
Android平台簡化了Makefile的編寫,寫編譯的腳本比較容易, 其中也碰到一些問題可以看看
http://blog.csdn.net/linux_lyb/archive/2009/05/07/4156572.aspx
JNI(JAVA本地接口)
由於引擎非java實現, 引擎的使用只能是通過調用本地接口來完成。 JNI不復雜, 只是一開始沒有接觸過, 在對象的路徑、名稱、函數定義等基礎上出現人為失誤,導致調用不成功。
java數據類型
返回識別的結果, 我定義了2種接口, 返回jstring和jbyteArray, 其中jbyteArray的賦值一直理所當然的以為用memcpy, 結果是必須使用java提供的接口, 類似(*env).SetByteArrayRegion(result, 0, byteSize, (jbyte*)&retbuf[0]);
編譯知識
有一個問題說出來比較丟臉, 最初在編譯的過程中,一直找不到漢王引擎函數的定義,鏈接不成功。起初一直以為問題出在編譯參數、編譯器版本、匯編語法上, 忘了留意到一個細節, JNI由c++實現, 最後頭文件裡加上extern "C"解決。
下一步: 全屏手寫輸入的實現, 主要是:
1、Touch事件的獲取
直接從窗口管理器獲取或者從底層的事件服務裡獲取。
為了讓在全屏手寫的時候, 其它窗口的控件也能收到Touch事件, 必須將非手寫需要的事件回送。
2、筆跡的繪制
直接寫屏或者使用android平台已有的接口。
涉及到屏幕的更新, 筆跡的繪制和清除。
創建一個透明窗口來簡化處理這些, 不知可行否, 都需要驗證。
一般SDK中都會帶有一些示例程序,說明具體用法,Android SDK也是如此
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
前面一篇文章實現了使用ViewPager實現高仿launcher拖動效果 ,後來很多朋友問能不能實現左右循環滑動效果和引導頁面。今天實現了左右滑動,至於在最後一頁
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個