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

Notification

Icon
Error

Guilin Ouyang
#1 发表时间 : 2012年9月16日 15:46:13(UTC)
Guilin Ouyang

等级: Administration

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

重新开始Android(安卓)系统的和码软件开发
2012年09月16日


今年年初,我开始做Android上的和码软件,还写了个记录,后来因安卓系统上开发遇到了困难,工作的变故,就停了。http://www.hezi.net/He/HeMa/HTML/HeChinese_Android.htm

这段时间,我工作之余有点空,总该做点什么才行,在网上来来去去,只能除徒增烦恼。昨天我参加了Windows 8和Windows Phone开发的一个技术培训会,意在从微软技术上再开始,但Windows Phone 8的SDK还没有发布,即使Windows Phone 8下月发布了,也可能不允许做系统的输入法。再一Android SDK 4.1发布,又增加了新功能。考虑再三,还是从Android开始。

在昨天开发者会议上,有20多个开发者,当讲师问,在坐各位是否有自己的项目时,只有我一人举手。这就是说,多数人都是来了解学习新技术,但没有具体的项目,没有明确的目的。IT新技术层出不穷,如果没有项目,即使有十八般武艺,也没有表现的机会,光学不练,要不了多久,所学的就忘了。这也是每次IT泡沫,或经济危机来袭后,总有一部分IT人员被淘汰的原因。

在这点上,我是幸运的,我有做不完的IT项目,并且是很有意义的项目,所用的技术都保留在我的软件里,比较容易回忆起来。我做的软件有很多人在用,也常常更新。

所不如意的是,和码汉字字形技术的软件,都没有给我带来收入,两年前我开始做苹果iOS上的和码软件时,信心满满,认为只要做好软件,定能给我带来经济收入,这样我就可以安心继续做软件。但现在AppStore上的4个软件,每天都新增100多个装机数,这已不错了。但用户只用免费部分,只有零星的用户购买。没有经济收入,就没有办法坚持,不得不找工作谋生。没有经济收入,也打击了我继续开发的积极性。因为在AppStore上没有收入,在Androed Market上,也不会有收入。

我还记得前几年做和码软件时,很艰苦,但很充实,我还是想过得充实些,现在虽然做不到那样投入,但我还是应该把零碎的时间用起来,慢慢推进和码的开发。这就是我现在想的,又重新开始吧。

Edited by user 2012年9月23日 21:00:55(UTC)  | Reason: Not specified

Guilin Ouyang
#2 发表时间 : 2012年9月23日 21:32:15(UTC)
Guilin Ouyang

等级: Administration

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

上个星期从安装Android4.1开始,重新熟悉安卓系统的开发环境,学习基本内容,做了一些基本练习。感到从Android4.0与4.1版,有很多的改进。

1. 根据developer.android.com上提供的安装步骤,安装容易多了。

2. 安卓软件开发的网上培训课程非常好,概念详解得很细致,容易理解。这是新增的内容。以前网上也有资料,但没有这次的系统与详细。http://developer.android.com/training/index.html

这些内容可以做为我学习开发的依靠,很好。

感觉event oriented programming,安卓系统采用Activity + Intent的方法,很新颖,简单容易理解。

首先做HeCharacter(汉字字根知识与技术)软件。只要坚持,就能成事。

Edited by user 2012年9月23日 21:32:56(UTC)  | Reason: Not specified

Guilin Ouyang
#3 发表时间 : 2012年10月1日 8:02:26(UTC)
Guilin Ouyang

等级: Administration

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

星期五晚上,朋友大力推荐我看《中国好声音》的节目,一看就是一个晚上,听到很多没有听过的歌曲,感到中国音乐也人才济济,这是个好的培养提升人才的平台。周杰伦的歌我听不懂,但周杰伦的歌却风靡中国,我曾几次问周围的人,周杰伦的歌有什么好听,他们也说不出来,现在看来是中国声乐人才短缺,优秀的音乐人没有宣传出来形成的,以后周杰伦现象就不会再出现了。但这个节目我不能再看了,这毕竟是与和码技术完全无关的领域,浪费我的时间。

星期六下午,本来编程上了路,但遇到一个很怪的错误,程序怎么都编译不过去。报出了很多的错误,为此我更新了Eclipse,从3.7.1到4.2版。重新做了HeCharacter Project,再一点点的加人内容。发现原因是有段程序中有个不显示的字符,我按组合键时,曾调出过法语键盘,又不知道怎么换回来,只有关掉Eclipse,这过程输入了个不显示的字符到程序中。这折腾去了我好几个小时。

星期天是中秋节,我中午去同学家吃饭,同学在一起又聊了很长的时间。

好在安卓上的第一个和码软件HeCharacter project,已做了两个界面,一个是首页,二是汉字25个字根的形成过程,功能还没有做全,但感到上路了。边学边做,慢慢增加内容。
Guilin Ouyang
#4 发表时间 : 2012年10月13日 10:48:32(UTC)
Guilin Ouyang

等级: Administration

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

2012年10月13日

又是两个星期过去了,和码一直是我空余时间的主要事情,但进展不快,有几个原因:

1、安卓开发平台的有些缺点,如运行软件用的软件模拟器很慢,程序运行有些怪现象,如昨天可以运行的Project,今天就运行不了,网上找到各种解释,试了很多的建议,问题克服了,但心里没底。

我在MacBook上安装运行安卓开发平台(现在依照安装步骤是很简单),运行速度也是慢。我还是用Windows PC上做安卓软件。两台电脑都是笔记本电脑,Windows PC屏幕大些。两台电脑都有点噪音,Windows PC噪音大些,但习惯了,也都感觉不到。

就象早前考虑先做微软手机,还是安卓手机,其实那个做出来都好,关键是立马去做。

2、我并不是快速的软件开发者,我有些成果,也是因为长时间专注于这个项目。我也在想为什么我做不快?

但又一想,编程就是一个技术活,现在的编程就是个抄来抄去的过程。虽然软件功能是我的,但实现的方法是别人的。如在苹果系统上编程,你就要用苹果编程语言,苹果界面设计元素,与实现方法,如果在安卓上做软件,你就要用不同的另一套方法。他们都提供了这些功能实现的函数与例子程序。

编程就是要学习别人的东西,有些是大段地抄,有些是小段地抄,然后拼到自己的程序中,做些修改,把自己的软件做出来,拿到别人的平台下去运行。

所以创造性的工作,都是语言的设计者,苹果与安卓系统的设计者做的。软件工程师都是跟在后面抄。

既然是技术活,就是熟练程度的问题,多用多练就会快起来吧(还好,我也有点创新性的,那就是“和码汉字字形技术”)。

10月11日,中国作家莫言荣获诺贝尔文学奖,他在农村从小在农村长大,很了不起,以后回国,定买几本他的书读。优秀的文学作品的艺术性与创造性应是不会被超越的。

第一个星期,花了时间考虑界面设计,基本是参照苹果系统上的“和码字根知识与技术”软件界面,主要是查找这些界面在安卓系统上的实现方法。了解并应用了Action Bar到程序中,安卓的Action Bar有苹果系统里没有的功能,感觉是后来者居上,技高一筹。

了解了Fragement,但还没有认识到其在这个软件中的用途。

上个周末是加拿大的长周末(星期一10月8日是感恩节),我还请了一天假(10月5日星期五),去渥太华看望我的小孩,星期天(10月07日)回到滑铁卢。

Edited by user 2012年10月13日 10:52:25(UTC)  | Reason: Not specified

Guilin Ouyang
#5 发表时间 : 2012年10月17日 20:34:00(UTC)
Guilin Ouyang

等级: Administration

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

2012年10月17日

设计软件中需要的键盘,Android提供了Keyboard XML layout 这个很方便,Android 的软件界面设计都是用XML进行,这比iOS好很多,用XML容易理解,与 程序之间的联系也清楚。iOS的Interface Builder很先进也很复杂,一段时间不用就忘了。Android在界面设计方面又高iOS一筹。

在iOS编程时,Protocal 与 delegate是基本的概念,在Android中完全没有,用Activity与Intent的结合,就绕过了这个复杂的问题。针对Event Oriented Programming的问题,很多编程语言与系统结构引进新的概念与解决办法,从复杂到简单,做了很多努力。感到Android系统对Event Oriented概念的简化起得了突破性的进步。

Android上编程有个大缺点,就是Project里的资源文件,其文件名中不能带中文字。如我的软件要用到上千个中文字的图片文件,如“443300如1.png”,“ 352300里2.png”,文件名中有中文字,可以使这个文件容易辨识。在iOS与Windows系统,都没有问题,但在Android中,就不行,我花了很长时间都找不到解决的方法。
Quote:

AssetManager assetManager = getAssets();
try {
String[] files = assetManager.list("ZiGenImageFolder");
for(int i=0; i<files.length; i++)
{
Log.d("File Name:", files[i]);
}
}
catch (IOException e1) {
e1.printStackTrace();
}

ZiGenImageFolder中含有很多文件,有的文件名没有中文字,有的有中文字,以上程序只能列示没有中文字的文件名。网上也有很多贴子说到Android不支持Unicode的文件名。

Android的缺点可能源于Java语言不支持Unicode文件名。

我感到很奇怪,Java以及Android这么通用的语言与平台,都只考虑英语,而不考虑东方文字。把我的这些中文字图片文件名,改成不含中文字,不仅不便辨识,也会有文件名相同,增加了很多的麻烦。


Main Menu HeCharacter Map

The Way HeCharacter Formed ZiGen 2

Edited by user 2012年10月17日 22:24:59(UTC)  | Reason: Not specified

Guilin Ouyang
#6 发表时间 : 2012年10月31日 19:20:19(UTC)
Guilin Ouyang

等级: Administration

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


2012年10月31日

今天是Halloween节,万圣节,鬼节。小孩们地带着吓人的面具,晚上到挨家挨户去讨糖果,每到一家都对主人说:trick or treat(要么招待,要么遭殃),主人家一般都早早准备了很多的小食品包。小孩子特别喜欢这个节目。年未到了,这也是为圣诞节到来造气氛了。

这款软件要用到以下几个技术:
1、是图片显示,与图片的更换;
2、字根读音;
3、手写字根练习;
4、图片动画;
5、HTML文章的显示;
6、键盘功能(在本软件中的输入);
7、Web Service功能;
8、软件内购买功能。等等

这些天又加入了一些功能,如:
1、加入了数字小键盘,实现大小键盘的相互切换。

2、加入了第二,第三组字根的图片与语音文件。

图片显示功能有了,字根读音功能有了,手写功能已部分做到,图片动画功能是接下来的内容。
Guilin Ouyang
#7 发表时间 : 2012年11月4日 20:55:16(UTC)
Guilin Ouyang

等级: Administration

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

2012年11月4日

11月2日星期五,我请了一天假,年未了,我还有几天的年假没有用完,又不能转到下一年去。也好,可以用来做这个软件。

星期五,把书写练习的部分做好了,这项功能前后用了一个星期的时间。

WriteViewWriteView

中间汉字图片WriteView 是放在Library中的View, 背景是个可以一步步显示字根笔画顺序的动漫,上面可以用手练习书写,双击图片,就去掉笔迹,并再次显示笔画顺序的动漫。书写时,第一笔是红色,第二笔的绿色,第三笔是蓝色。可以与图片中正确的书写顺序对比。

这个WriteView功能独立,可以用于以后的HeBook1, HeBook2软件中的书写练习。

学习资料:
1、Android ApiDemos中的FingerPaint 的例子;
2、学习了Creating Custom Views的内容:http://developer.android.com/training/custom-views/index.html
3、学习了http://stackoverflow.com/上很多关于Android编程的帖子。

Edited by user 2012年11月4日 21:02:55(UTC)  | Reason: Not specified

Guilin Ouyang
#8 发表时间 : 2012年11月9日 0:51:12(UTC)
Guilin Ouyang

等级: Administration

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

2012年11月06日,和码在iOS上《和码中文》教程第一册软件,售出了共25课,这是单天最高销售量,是新加坡的一位用户购买的。

2012年11月08日,今天做到了Image animation的功能,这是和码字根练习的内容。


WriteView
Guilin Ouyang
#9 发表时间 : 2012年11月12日 8:30:24(UTC)
Guilin Ouyang

等级: Administration

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

2012年11月11日

进一步将HCKeyboardView的功能独立出来,使其包含:
Quote:

1、OnKeyboardActionListener功能;
private OnKeyboardActionListener hcOnKeyboardActionListener = new OnKeyboardActionListener()
{
public void onPress(int primaryCode)
{
if(primaryCode>=0 && primaryCode<=5)
{
typingState.typeShuMa4NumPad((byte)primaryCode);
if(typingState.m1<10)
{
passMassage2Activity(typingState.m1);
}
else
{
int ind = CharSet_Model.shuMaToIndex(typingState.m1);
charSetModel.playSound(ind, 1.0f);
passMassage2Activity(typingState.m1);
typingState.clearTypingState();
}
}
else
{
typingState.typeShuMa4NumPad((byte)primaryCode);
int index = CharSet_Model.shuMaToIndex(typingState.m1);
if(index>=0 && index<25)
{
charSetModel.playSound(index, 1.0f);
passMassage2Activity(typingState.m1);
typingState.clearTypingState();
}
}
return;
}

public void onRelease(int primaryCode) {
if(primaryCode == 123) //Switch keyboard
{
isNumPad = !isNumPad;
setupKeyboard(isNumPad);
if(isNumPad)
passMassage2Activity((byte)122); //numpad
else
passMassage2Activity((byte)123); //big keyboard

return;
}
else if(primaryCode == -1) //go to previous activity
{
//super.onBackPressed();
passMassage2Activity((byte)-1);
return;
}
else if(primaryCode == 88) //Get help
{

}

return;
}
…..
}

2、数字键盘与大键盘转换,键盘上字根显示,字根发音,三个字根组的软件等功能;
3、实现Keyboard的TypedMa信息到Activity的传递,参看了以下这个帖子:
http://www.helloandroid....om-view-horizontalslider
以及Android的资料:
http://developer.android...topics/ui/ui-events.html
Quote:

private OnMaTypeListener myTypelistener;
public interface OnMaTypeListener {
void onMaTyped(View v, byte shuMa);
}

public void setOnMaTypeListener(OnMaTypeListener listener) {
myTypelistener = listener;
}


4、将HCKeyboardView移到HeLibrary中。
HCKeyboardView, (HeChinese)与以后和码输入法软件中的HeKeyboardView会有些区别。

今天买了Google Nexus 7是Android 4.1的Tablet,269.70+税=304.76加元。现在可以在设备上试和码软件了。

Edited by user 2012年11月12日 8:33:53(UTC)  | Reason: Not specified

Guest
#10 发表时间 : 2012年11月19日 4:18:29(UTC)
Guest

等级: Guest

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



请点击查看下续帖子。

Edited by user 2013年5月25日 13:36:44(UTC)  | Reason: Not specified

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