和字网首页(Home) | 论坛首页(Forum)
Welcome Guest! To enable all features please 登录 or 注册.

Notification

Icon
Error

Guilin Ouyang
#1 发表时间 : 2013年1月8日 18:54:07(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年01月08日

今天重新开始做和码在安卓系统上的输入软件。

刚刚新开一瓶Whisky酒,Red Label。这是一个有效的方法,在下班后,早早地吃饭,喝点酒,早早地睡一觉,起来后,就能工作4个小时,还不感觉到累。

希望这瓶喝完时,我的这个软件也能做得差不多。

Edited by user 2015年12月11日 2:03:50(UTC)  | Reason: Not specified

Guilin Ouyang
#2 发表时间 : 2013年1月14日 23:00:13(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233


2013年01月14日
软件有些进展:
1、复习前次学习与做过的一些内容:
HeChinese_Android.htm
2、学习以下资料:
1)、creating-input-method.html
2)、updating-applications-for-on-screen.html
3)、creating-input-method.html
4)、安装与运行Android的例子程序(SoftKeyboard)。
5)、以SoftKeyboard例子程序为基础,做"HeInput"Project.
6)、做个简单的Project:InputDemo, 读取和码的单字与词组Sqlite3的数据库中的单字。
7)、做个Library: InputEngine,把InputDemo中读取数据库的Function都放到Library中,运行InputDemo。
  the library does not exist outside of its hosting app. Hence, the database file will be stored in the app's portion of internal storage by default.
  作为Resource的Sqlite3数据库,与Runtime的数据库文件都在Hosting App中,只有运行的逻辑(Functions)在Library中。
8)、在HeInput中加入library:InputEngine,读取单字与词组的数据并显示。这个程序的基本工作,就是从数据库中读取数据并显示。这一点做到了。

下面要做的是在输入时,显示一个可移动的单字与词组的候选框(象苹果系统那样)如下图,在Android中能否做到,如何做,这是接下来的任务。

Candidate View


Android还有一个很有名的Open Source的输入法程序,应该有很多可以学习的内容:https://github.com/AnySoftKeyboard

Edited by user 2013年1月15日 20:49:32(UTC)  | Reason: Not specified

Guilin Ouyang
#3 发表时间 : 2013年1月26日 11:41:43(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233


2013年01月26日

为了做这个输入候选框花了不少时间,当然也是了解学习Android的过程。
Android要求CadidateView与KeyboardView在一起,不能如我先想象的Candidate自由移动,因此只好先如此做。

其间的主要学习内容与步骤:

1、从xml文件生成(Create) View,并加入到Layout中(LayoutInflater)。
android layoutinflater turorial

2、Android SQLiteDatabase
1)、simple example using android's sqlite
2)、example of using Android's sqlite

3、Android ListView and Cursor Adapter
1)、layout listview
2)、android listview cursoradapter sqlite

4、输入法中Candidate View要求是Custom View
1)、Create custom views
2)、an example of custom widget view

HeInput View


现在我了解了实现和码在Android上输入法的主要技术,应该完成了这个软件的40%的进程。

Edited by user 2013年1月26日 12:27:34(UTC)  | Reason: Not specified

Guilin Ouyang
#4 发表时间 : 2013年2月3日 12:47:37(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233


2013年02月03日

和码安卓系统输入法也如电脑上的输入法一样,提供多种输入方式,如:

1、和码字形输入;
2、拼音查码;
3、和码英文输入;
4、英文输入。

对于手机仅提供小数字键盘,对于Tablet(上网本)提供字母键盘与数字键盘。

在小数字键盘上,可以很快就学会(适应)盲打,在不适合双手输入的设备上,用小数字键盘是最方便快捷的输入方式。
He numpad keyboard

和码字母键盘如:
HeCharacter keyboard

和码提供新式的英文字母键盘,对英文字母数字化,与新排序方法请看文章:英文字母数字化(Encode English Characters)
HeEnglish Keyboard

HeEnglish keyboard


Edited by user 2013年2月3日 13:27:57(UTC)  | Reason: Not specified

Guilin Ouyang
#5 发表时间 : 2013年2月3日 21:23:04(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2012年02月03日

我要放下这个软件一段时间,因为我2月8日的飞机,回国过春节,我感到春节的接近,感到热闹高兴的气氛了,现在要做回家的准备工作。

做一个软件,要追逐各项功能的细枝末节,考虑维护,移植与扩展等问题,时间长了,有些累,这也可休息调节一下。

回国时,我要到上海,江西九江,彭泽;2月23日回加拿大,回程时经过九江,广州,香港。

祝各位关心和码的朋友,春节快乐!新年里和码会与大家一道更上一层楼。


哦,开头提到的那瓶酒,还剩一点,几乎每天都喝一点,算算约30ml,对我来说,这酒的催眠作用很好。

Edited by user 2013年2月4日 12:14:09(UTC)  | Reason: Not specified

Guilin Ouyang
#6 发表时间 : 2013年3月4日 1:42:32(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年03月03日

看到很多朋友都关注和码的这款软件的开发,谢谢了。

近两个星期,和码在iOS上的下载量,增加了不少,现在每天装机数在两百以上,很多增加量是来自越狱机的,说明破解了的和码软件,在越狱机中传开了。

和码在Android上的输入软件,下周将继续,可能会慢些,但总要做出来才行。

Edited by user 2013年3月7日 10:23:54(UTC)  | Reason: Not specified

Guilin Ouyang
#7 发表时间 : 2013年3月6日 22:10:39(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年03月06日

今天又买了一个Android设备,Samsung Galaxy Tab 2 7.0,上次买的Nexus 7.0,让我小孩在老家过年时,不小心从一尺高的地方掉到一个硬物上,屏幕就破了,不能接受触屏信息,不工作了。Nexus 7.0的软件系统很好,但屏幕太易损坏了。

又得要去买个Android设备做软件测试了,因为在设备上运行测试软件会快很多,省很多的时间。

昨晚还是初步了解Galaxy Tab2 7.0的资料,今天下班后就去买了,买时还有些担心,1)产品包装上写的系统是:Android 4.0 Ice Cream Sandwich,这个版本有点低. 2)担心在Tab2 上做软件测试,要安装特别的测试软件,要做复杂的设置。

Galaxy Tab2产品的系统,不能简单地升级,(Nexus 7的系统(自动)容易升级),Android 4.0版本低了些。但安装好后,发现系统是Android 4.1.1了。不是包装上与售货员告诉我的Android 4.0,这让我高兴了很多。

在MacBook OS X上,可以直接把Eclipse上的Android Project送到Galaxy Tab2 7.0上测试运行,只是在Settings->Developer Option->Debugging->USB debugging 选上就行。

以上两项,让我对今天的购买很满意。现在就可以继续做和码软件了。

Galaxy Tab2 7.0 价格:CAD$199.99, 加税后共付了 CAD$:228.59

Edited by user 2013年3月7日 10:23:08(UTC)  | Reason: Not specified

xiaozhuchinese
#8 发表时间 : 2013年3月9日 10:19:42(UTC)
xiaozhuchinese

等级: Member

组: Registered
注册时间: 2013/2/6(UTC)
帖子数量: 12
China

其实可以在论坛上开一个下载专区,让大家的安卓设备一起帮你做测试
Guilin Ouyang
#9 发表时间 : 2013年3月17日 23:16:39(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年3月16日

近几天软件有些进展,很多时间花在实现候选框界面的功能上。现在能做单字输入,图片上的字都是用这个软件输入的。

HeInput DanZi image 1 HeInput DanZi image 2

Edited by user 2013年3月17日 23:29:16(UTC)  | Reason: Not specified

Guilin Ouyang
#10 发表时间 : 2013年3月26日 0:29:11(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年03月25日

小小的更新,在候选框上加上了输入码的显示:

ListView Header

Edited by user 2013年3月26日 0:31:27(UTC)  | Reason: Not specified

Guilin Ouyang
#11 发表时间 : 2013年3月30日 16:10:43(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年03月30日

以前和码输入软件的码本,都是采用:索引+码本文件的方式,这次都采用SQLite数据库。这样字词读取与处理的程序就简单得多。

SQLite存储的数据Type很少,和码只采用Integer和Text,CiZu数据表很大,有18万余条,怎样节省存储空间呢。我做了以下两种比较:

1、最省空间的方法(把m1,m2,m3做一项):
create table CiZu
(
--_id INTEGER PRIMARY KEY,
CiZu text,
M1m2m3 numeric,
m4 numeric,
HeMaOrder_JF numeric
);


一一 111100 0 30
要不要 111111 34 30
一天天 111111 24 40
万无一失 111111 41 41

Hama_db_smallSize.sqlite3 7,024 kb

2.最废空间的CiZu数据库(多个数据项):

create table CiZu
(
--_id INTEGER PRIMARY KEY,
CiZu text,
M1 numeric,
m2 numeric,
m3 numeric,
m4 numeric,
HeMaOrder numeric,
JianFan numeric
);


一一 11 11 0 0 3 0
要不要 11 11 11 34 3 0
一天天 11 11 11 24 4 0
万无一失 11 11 11 41 4 1

Hama_db_largeSize.sqlite3 7,748 kb

比较结果是:
.sqlite3
最省方式数据库大小为:7,024KB
最费方法数据库大小为:7,748KB
增加幅度: 10%

两种方式,占用的空间相差不大。而后一种方式,在数据读取后,不需要多做计算就可以直接用。
所以和码SQLite的数据表,都细分数据项。

以下是生成数据库的步骤,做个记录:

Quote:
H:\Database\SQLite\HeMa\Current>sqlite3.exe hema_db.sqlite3
SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .read ../script/create_HeMa_DB_Tables.txt
sqlite> .separator "\t"
sqlite> .import ../data/utf/HanZi.txt HanZi
sqlite> .import ../data/utf/Symbol.txt HanZi
sqlite> .import ../data/utf/CiZu.txt CiZu
sqlite> .import ../data/utf/English_Word.txt English_Word
sqlite> .import ../data/utf/PinYin_number.txt PinYin_Number
sqlite> .import ../data/utf/PinYin_HanZi.txt PinYin_HanZi
sqlite> .import ../data/utf/HanZi_PinYin.txt HanZi_PinYin
sqlite> select count(*) from hanzi;
21601
sqlite> select count(*) from cizu;
184376
sqlite> select count(*) from English_word;
9055
sqlite> select count(*) from PinYin_Number;
414
sqlite> select count(*) from hanzi_PinYin;
25068
sqlite> select count(*) from pinyin_HanZi;
416
sqlite> .quit

hema_db.sqlite3 数据库中有6个数据表,数据库大小为:9,008 KB


4月5日更新
在对数据做去空格处理后,如Ltrim(Rtrim(cizu)),hema_db.sqlite3数据库的大小减至6,396KB。

为提高数据读取的速度,对6个数据表都加了Index,使得数据库的大小又增加至10,110KB。数据读取速度快了很多。

Edited by user 2013年4月5日 22:12:58(UTC)  | Reason: Not specified

Guilin Ouyang
#12 发表时间 : 2013年4月4日 0:57:57(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年04月03日

SQLite数据库是多平台可以用的,这样和码的hema_db.sqlite3就可以用于多平台了。

在程序上,也要有个适合于多平台的结构,来读取数据库,这样以后的和码编程就方便了。

这次是使用数据库为基础的设计:

用户界面有:Keyboard, Candidate ListView, TypedMa TextView, PinYinPrompt TextView, PageIndicator TextView.用户界面都不保存不处理数据,数据都从数据Model: DataServer中获取。

Data Model: DataServer, 用户输入码后,传给DataServer,调用Engine_Collection, DataEngine,Access数据库,得到resultCursor与相关信息,保存在DataServer中。DataServer 界于用户界面与Engine_Collection之间。

Engine_Collection Class 以及其包含的HeMaEngine, PinYinEngine, HeEnglishEngine, HanZi2InforEngine, 是多平台通用的。

各个Data Engine对外都只有一个函数:
public Cursor typingCharAndNumber(Setting setting, TypingState ts, SQLiteDatabase hemadb);
返回的结果保存在Engine_Collection中,如果是有效的结果,就返回到DataServer,供界面显示。

CiZu Input

Edited by user 2013年4月4日 21:24:58(UTC)  | Reason: Not specified

Guilin Ouyang
#13 发表时间 : 2013年4月13日 22:44:54(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年04月13日

输入功能还是花了不少的时间。

接下来一周,我需要去做另一个项目,这个项目要暂停一下。急呀。

CiZu Input

Edited by user 2013年4月13日 23:06:07(UTC)  | Reason: Not specified

Guilin Ouyang
#14 发表时间 : 2013年5月25日 13:04:25(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年04月23日

上个星期,把苹果iOS上的HeBook1软件更新了一下。

这个软件已在一万多台iOS设备上安装了。因为以前的界面在iPhone5的长屏幕上有错误,再一我希望这个软件能更快地在汉字学习者中应用起来,加入了一些新设计内容。

这次更新加了以下内容:

1、打开软件首页时,自动播放课文的声音文件;
2、修改在iPhone5长屏幕上,界面排放的一些错误;
3、测试页界面大为改观;
4、改进了首页的界面;
5、加入将课文语音文件设置为彩铃的功能;
6、将前四课的内容都免费(以前是前两课免费)。

课文的语音彩铃,也可以在以下网页下载:

点击下载课文语音文件


2013年04月26日星期五晚上,我想到这个软件从内容与形式上都很好了,要想让这款软件在汉字学习者中传播开,前四课免费仍然不行,应该将25课的内容全部免费。当即做HeBook1的2.0版,并提交了。因此断了通过这款软件挣钱的念头。

这款软件采用一种全新的汉字字形教学方法,推广新方法,应该做出更大的付出。

这款软件是2011年8月31日上线的:HeBook1《和码中文》教程第一册

Guilin Ouyang
#15 发表时间 : 2013年5月25日 13:05:52(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年05月13日

在输入模式上,与和码电脑软件一样,有和码字形输入,拼音查码,HeEnglish输入,English输入。

HeInput(Inherits from InputMethodService)通过DataServer准备字词数据,也进行目录(菜单)的处理。HeInput call DataServer's functions, such as generateCandidates(int typedShuMa), changeCadidateSelection(int num), menuSelected(int menuIndex), 但也有在dataServer function运行过程中,需要通知HeInput处理一些事,如目录选项要求换键盘,因键盘是HeInput的Object,这就要通过回Call(Callback) HeInput's function来切换键盘。还有更多需要回叫的时候,如(ma1=0,ma2=0)重复输入时,连续输入时等。

当然也可以不采用Callback,而是让HeInput每次都检测DataServer function的结果,但这种检测很烦琐,而在需要时直接用Callback调用HeInput中的function就很方便。

在iOS中Callback是用Protocal, Delegater,来进行的。而Java是通过Interface进行的。
这是一个Android Callback的帖子:http://stackoverflow.com/questions/3398363/how-to-define-callbacks-in-android

我在DataServer中有:
Quote:

public interface OnDataServerListener {
void keyboardChange(InputMode inputMode);
void saveSharedPreferences();
void commitString(String typedString);
void updateTypedMaView();
}

private OnDataServerListener dataServerListener;

public void setOnSettingChangeListener(OnDataServerListener listener) {
dataServerListener = listener;
}

....
dataServerListener.keyboardChange(setting.currentKeyMode);
....
dataServerListener.commitString(getSelectedZiCiStr());
.....



而在HeInput service中有:

Quote:

dataServer.setOnSettingChangeListener(dataServerListener);

protected OnDataServerListener dataServerListener = new OnDataServerListener()
{
@Override
public void keyboardChange(InputMode inputMode)
{
....
}
     
@Override
public void saveSharedPreferences()
{
.......
}
......

}



这样就实现了所谓的回叫(Callback)了。

和码在安卓上的输入软件,现在是测试完善阶段。
Guilin Ouyang
#16 发表时间 : 2013年5月25日 13:08:58(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2013年05月18日

安卓系统和码输入软件1.0版发布,点击查看发布信息

安卓系统输入软件的制作,比较容易,因为有个很全面的例子程序:Android Softkeyboard

主要时间花在:

1、采用ListView显示Candidates, 我没有见到别的安卓输入法用ListView做Candidate View,但我认为这个好,保持了和码输入软件的习惯,有较大的显示空间,但ListView的有些功能没有实现得了,如List item不响应点击事件。

2、码本采用SQLite database,这是和码软件的第一次,以此Database建立输入Engine。

3、各种输入模式,输入过程的实现。

4、大小键盘的设计。


安卓系统和码输入软件

下载链接:安装软件: HeInput.apk





Edited by user 2013年5月28日 22:48:42(UTC)  | Reason: Not specified

Guilin Ouyang
#17 发表时间 : 2014年5月19日 21:52:11(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2014-5-08

安卓系统和码输入软件,更新至和码方案5.0版。

可以在Google PlayGoogle Play 和码输入软件下载链接

也可以通过上帖给出的链接在本网站下载。

Guilin Ouyang
#18 发表时间 : 2015年11月5日 8:10:39(UTC)
Guilin Ouyang

等级: Administration

组: Administrators
注册时间: 2012/2/4(UTC)
帖子数量: 233

2015年11月04日

更新了安卓系统《和码输入法》软件:

1、用Android Studio 1.4, 重建Project;
2、更新内容至和码5.1版;
3、改进键盘,增加了常用的标点符号键;
4、添加了和码学习资料与相关软件链接。


软件可以从以下网页下载:

点击下载:《和码汉字输入法》软件

Google Play 上《和码汉字输入法》软件

论坛跳转  
不可以 发表新话题.
不可以 回复话题.
不可以 删除自己的发言.
不可以 编辑自己的发言.
可以 发表投票.
不可以 投票.