Thursday, March 31, 2011

Android工程的组织结构

本文介绍一个十分简单的Android工程的组织,由java语言编写。

这个例子是为了说明如何在没有任何Android开发基础的前提下强行开始工程的研发,适合于有一定其他类的较大项目开发经验,但基本首次接触Android的研发人员。

 

以下为这个Android工程的组织结构,其中比较重要的地方都已经展开了。

clip_image001

src目录下的test1.java为主要源程序,如果工程比较复杂也可以有多个源程序文件。gen目录下的R.java为一个自动生成的java代码文件,主要用来标记界面上各个元素的情况,一般来说开发者不需要修改这个文件。

res\layout目录下的main.xml为主界面,res\values目录下的strings.xml保存了一些字串常量,一般情况下无需修改名字,也可以在主要源程序代码中指定。

在res目录下还保存了程序的图标,图片资源等,管理起来都比较简单,本例中也不讨论这些地方。

 

下面是这个简单例子的界面,比较随意,只为说明问题。

左面为控件库,可以直接用来拖动设计界面,如需要复杂的排版效果,可以直接编辑xml文件。该文件中同时保存了每个控件的id名。例如这里的第一个按钮的对应部分为:

<Button

    android:text="Button123"

    android:id="@+id/button1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_gravity="center_horizontal" >

    </Button>

 

本例包含几个基本的控件,即一个字串,两个按钮,一个单行文本编辑框。一般的说,如果觉得这些控件不够美观可以自己画图,再为图片编写事件,大部分情况可以糊弄着用。

image

 

以下为源码文件的内容,注释中将详细说明哪些是非常重要的,哪些是必须手动添加的。

 

package com.test1; 

// 指定的程序名称,在创建工程时由开发者填写

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

// 显示专用库

import android.view.View.OnClickListener;

// 处理点击事件的专用库

import android.widget.Button;

// 按钮专用库

import android.widget.TextView;

// 字串label的专用库

import android.widget.EditText;

// 编辑框的专用库

// 在添加控件时,以上代码并不会被自动加入,需要手动添加

// import相当于C#usingDelphiuses

 

public class test1 extends Activity {

    // 与文件名相同的类

 

    private Button mBtn1, mBtn2;

    private TextView mText;

    private EditText e3; 

    // 定义具体的对象,与主界面中对应,对象名任意起即可

    /** Called when the activity is first created. **/

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        // 以上两行均为自动生成,可以理解为程序入口,通常不要修改

        // (关于程序入口的定位Google的解析非常糊涂,初学者基本看不懂,可以就当是这里)

        setContentView(R.layout.main);

        // 选择一个xml的定义作为主要界面,即指定main.xml

        mBtn1 = (Button) findViewById(R.id.button1);

        mText = (TextView) findViewById(R.id.Text1);

        mBtn2 = (Button) findViewById(R.id.button2);

        e3 = (EditText) findViewById(R.id.editText1);

        // 需手动用findViewById将控件与具体对象关联

 

        mBtn1.setOnClickListener(new OnClickListener() {

            // 为第一个按钮的点击设置监听

            public void onClick(View v)

            // 本行可认为是固定写法

            {

                mBtn2.setText(e3.getText());

            };

            // 具体的内容可以直接写在这部分

        });

        mBtn2.setOnClickListener(new View.OnClickListener() {

            // View.OnClickListener与不写View是一样的,但是输入View.

            // 之后可在弹出的列表中直接选择OnClickListener

            // 下面一行也会自动生成

            public void onClick(View v) {

                // TODO Auto-generated method stub

                onTTTT();

                // 具体的内容也可以写在后面单独的函数

            }

        });

        // 以上内容需在OnCreate过程中写完

 

    }

 

    public void onTTTT() {

        mBtn2.setText(mText.getText());

 

    }

 

}

Friday, February 25, 2011

Chrome插件

鉴于Firefox基本可以干死Mac系统,Safari使用体验上几乎半残,Opera排版胡乱用字体,IE for Mac被微软毙了,目前Mac下面比较好用的浏览器应该是Chrome。这东西如果不加几个插件跟Safari也没啥区别。

一般的说,我只用鼠标手势和超级拖拽,还是习惯的力量。

下载

AdBlock

据说作者现在辞了工作专心开发这个插件,可以理解为对网络时代商业强权的对抗。有空可以给作者捐点钱。

下载 (1)

Drag and Go

超级拖拽目前这个比较好。

下载 (2)

Smooth Gestures

鼠标手势,其实我只用关闭网页的手势。

下载 (3)

Sexy Undo Close Tab

同类品很多,这个包含搜索功能,同时比较美观。

Logo

UndoIt!

当只需要恢复最近关闭的一个标签时,比上面的省去一次点击和精力。

Logo

Force Microsoft Yahei Font

强制雅黑或文泉驿微米黑。Windows下面有用,Mac下就不必了。

Sunday, February 20, 2011

关于《红楼梦》作者的一种观点

《红楼梦》在写什么呢?《红楼梦》在写一个小男孩的成长,他看穿了社会的黑暗,一个成年男人“体制化”的结果就是变成“国贼禄蠹”、“穿靴戴帽的强盗”;这个社会贫富悬殊,司法不公,道义无存,统治阶级为富不仁骄横跋扈,普罗大众饥寒交迫猪狗不如;他看穿了大家庭温情脉脉面纱下的虚伪和凶残,“花柳繁华地温柔富贵乡”不过是男盗女娼的乐园、相互倾轧的屠场。


这个假人、假事、假话构筑的荒唐国家毁灭一切真善美(以大观园里的少女们为代表和象征),也毁灭了这个男孩的爱情,他最终只能远远逃离这个令人绝望的世界。这个男孩的出走,完全否定了中国一切“盛世”的神话,全面揭示了中国令人绝望的荒原般的人文生态环境。


《红楼梦》没有指出一条令人感到希望的道路,但它极具真实性的描写却能解构这个荒唐国家的实质:极权暴政是一切假丑恶的根源。薛蟠、王熙凤和贾赦等人倚仗权势,可以将司法机关玩弄于股掌之间;贾雨村这个落魄的文人依靠谎言攀附权贵,可以青云直上大红大紫;讲真话办真事的甄应嘉就会被抄家下狱;迂腐不知变通的贾政在如此流氓的体制内只能当一个被小人裹挟的糊涂虫和可怜虫。

以上文字出自http://daofeichang.blog.163.com/,写得非常精彩。

该博客的主人认为《红楼梦》的作者是曹頫,120回全部为其所撰。

我不想掺和这个问题,不过我觉得120回出自一个人的可能性比较大。后40回的事也许是作者心态变化,也许有人修订。

而且我还觉得,后40回情节发展迅速,排除那些作者的故弄玄虚,实在比前面要好看一些。

Thursday, February 03, 2011

MSN中的内容转到Wordpress

鉴于微软要关闭live space了,这里的东西虽说看的人不多但是也不能扔掉,于是折腾了半天将内容转至Wordpess。

其中犯了一个错误就是将内容转至新浪了,本是为了在内地访问方便,后来发现新浪这个东西居然不是开放的,想把东西弄出去比较困难。不过办法还是有,就是先用blogbus搬家,再用http://blogbus-to-wordpress.appspot.com/把blogbus导出的格式转换一下。

目前不好说微软会在3月之后把图片都干掉,先这么放着吧。

这个里面还把以前写引擎时的另一个blog的内容弄进来了,看起来有点意思。

Thursday, November 18, 2010

好像学会玩魔方了


昨天学了几个小时,终于能拼完魔方的六个面了。


顺序应该是:1、底面十字,2、底面四角,3、4个侧棱,4、顶面,5、顶角交换,6、顶棱交换。


其中1可以基本瞎掰,2需要简单的手法,3需要相对复杂的手法。前3步都需要观察,有一定的规律。
4基本是记住几个翻法,翻着翻着就能出来;5和6都是记住手法。


总之现在一半还是靠背的。


有本介绍魔方的文章里面说,这东西曾经是对很多人智力的侮辱,看来真是贴切啊。


Sunday, August 29, 2010

游戏推荐-金庸群侠传前传

《金庸群侠传》这个游戏还用介绍吗?

20100515_2e3d33ec5e27d62d8960oAmTRyjCjWVg[1]

《金庸群侠传前传》是一个同人游戏,我曾经为其编写了主要引擎的部分。其实是我在两年前左右,用Pascal将《金庸群侠传》DOS版重写了一遍,后来有几个同人游戏以这份代码为基础制作。

这个游戏的具体制作,例如资源,字串的导入,其后对系统的一系列修改,我参与的部分较少。事实上,这些工作更为枯燥,制作者更加值得尊敬。

无论如何,在这些同人游戏中,我较为推荐这款。

在这一款游戏中,你扮演的主角是《金庸群侠传》中南贤曾经提到过的“金先生”,在江湖中到处闯荡惹事,最后写出十四天书的故事。写每部书的经历跟原来的游戏类似,均是各自独立。在最后也像原版一样,需要经历一场大战。

游戏的一大特点就是将内力设置为类似装备的效果,在平时或者战斗前可以选择某种内功作为“功体”,这些所谓“功体”往往带有某种特殊效果,例如增加生命、轻功,反弹伤害等,可以说,这些功体是你闯关的利器。

既然是同人游戏,自然完全免费。下载地址为:

http://www.txdx.net/downpage.php?a=v&fid=64&type=1 (需要在论坛注册,也可在该论坛参与游戏讨论,寻找修改器等)
http://www.duotegame.com/soft/26824.html (多特下载站)

Friday, May 28, 2010

传说苹果市值超过微软


微软流年不利。



尽管在个人和企业操作系统上,无论苹果谷歌还是开源社区均没有与微软抗衡的实力,但是在便携设备和网络服务上微软却输了个一塌糊涂。何况最近两年在微软的强项上,Vista也搞得名声不太好,兼之IE不思进取,Office开始胡搞标准。


Saturday, May 22, 2010

一个程序拖死整个系统



在以前的Windows版本中非常常见,自从2000之后好了很多,至少任务管理器杀进程的效率还是很高的。目前来看第三方软件有这个潜力的已经不多了,也就是硬件驱动,厂商的软件,和微软的某些软件硕果仅存。



微软的软件出名的难修复,比如live套件中某个出错,重装软件似乎是解决不了问题。像qq这种东西虽然名声不太好但是毕竟通俗易懂老少咸宜至少出了问题重装基本就能解决,msn经常地不能登录而且这个时候查也是查不出问题的还要可能去修改IE的设置你说它们用的到底是不是不同的协议,一旦安装出错如果不重装系统就基本挂掉了。


MacOSX里面,Firefox有这个潜力,目前尚未发现其他的。


Tuesday, May 11, 2010

Windows 7锁定任务栏功能失效的解决方案

Windows 7中,可以将程序锁定到任务栏,之后便可以点击这个图标快速启动该程序。如果程序针对7的Aero Peek特殊设计,还会有一些特别的效果。

image

如果找不到这个“锁定到任务栏”选项,那么可能是你用过某些优化工具去掉了快捷方式图标上的小箭头……这二者表面看来没啥关系,但是事实就是这样。

image

嗯就是这个,其实放着也没啥不好……能分清楚是链接还是真的文件。就像为什么C语言里面无参数函数也非要带个括号一样。

Monday, April 19, 2010

FC游戏怀旧评论——兽王记

首先,我是先接触『超人狼战记』这个游戏的,这个游戏被D商们印成“兽王记2”。『超人狼战记』是TAKARA出品,画面和游戏性表现都非常出色。
 image

但是这里要说的是这个游戏的所谓前作『兽王记』。实际上这两个游戏基本没有任何关系。

据一些当时的朋友们说,『兽王记』比“兽王记2”要好玩,因为1代中可以变身成各种不同的怪物,而2代中只能变身为狼(其实还有一种金色狼,攻击力比普通狼强一些)。
这句话大概对了一半,『兽王记』的主角的确是可以变成很多种怪物,但是并不好玩。
那么我们先看看在每个关卡中我们的主角兽王都会干些什么。
1.在一个自动卷轴,画面粗糙的场景中打怪。
2.如果打倒白色的狼(根据街机版的画面,是一种双头狼),会掉出能量球。吃掉能量球可以变身,变身有3阶:强壮-更加强壮-兽化。但是我至今仍然觉得强壮,更强壮这两个状态除了主角大了一点,能力似乎没有任何的变化。而兽化之后的能力确实超群,这时杀杂兵会很爽。事实上这段时间很可能是这个游戏FC版的唯一卖点。
3.最后每关的boss法师会来测试你,如果主角并未在遇到法师之前兽化,则关卡继续,否则法师变身进入boss战。
 image

这个游戏还是有剧情的,但是在FC版中都被无情的略去了。实际上,每关关底出现的法师并不是同一个,在街机版中他们的衣服颜色是不同的。由于这些省略,只玩FC的玩家基本都会一头雾水,法师是自己人还是敌人,他为什么要自爆?
其实这个游戏的游戏性基本上可以用糟糕来形容。每一关的画面都同样粗糙,敌人包括主角的攻击和被攻击判定范围都不太靠谱,在未兽化时空中的敌人极难对付。兽化之后主角会有一个飞行道具攻击和一个短期无敌的技能,因此多数boss都很容易通过。但是唯一的例外在水关,这里的boss可以用触角挡住要害,而主角化身的鲨鱼(其实我以为是海豚)只能发出直线的飞行道具。你只能利用触角放下的瞬间攻击,但是boss还可以在这一阶段再抬起触角。如果你想绕到boss身后或者触角后面的话,你会发现这个boss的身体恐怕不仅仅是你看到的部分。没错!你在黑色的地方被攻击了!之后你一路被攻击着打回了原地,血也费的处在半死状态了!这时候你会又发现这个游戏的一个惊人事实,尽管攻击后有一段闪烁时间,但是这并不是无敌时间,这个游戏似乎根本没有无敌时间!
当锁定了生命值不知死了多少命之后,我很想看看这个游戏的街机版,这个时候另一个更加惊人的事实出现了,街机版根本没有这一关!天啊这是做出来折腾FC玩家的吗?
image 


算了,其实这只是一个街机游戏的移植版,只是骗玩家游戏币的东西……

参考:
http://www.yxbns.com/ldj/beast/ab1.htm

Friday, April 16, 2010

胡扯瞎扯


10个愚人节的玩笑 | Jandan.net

1998年愚人节:New
Mexicans科学技术杂志宣称阿拉巴马州要立法改变圆周率pi的值,很快这事被传上网,通过电子邮件传遍全世界。阿拉巴马立法机构因此接到无数抗议电话。


PS:不是美国某个州死活认为圆周率是3么。。。


Wednesday, March 24, 2010

word文档在不同电脑上的格式一致


基本上很多人都遇到过这个问题。在自己的电脑上看起来好好的,拿到有打印机的电脑上想打印时却发现格式变乱了。


其实word对格式的控制还是有一套的,这类问题的主要原因是缺字体。比如你在自己的电脑上用了“仿宋”一类的字体,在别人的电脑上没有,那么word在显示的时候会将这个字体替换成别的,比如一个格式古怪,默认行距也不一致的黑体。


在国家机关发布的一些doc文档中,经常有一些后面带有“GB2312”这类字体,很多人以为这种字体是某个国家标准。而事实是,这类字体由于里面的中文字符严重不全,早已被微软放弃,国家也早就颁布了新的标准。GB2312标准仅仅包括6763个汉字,说不定很多人的名字都打不出来。

 


为了保持文档在每台电脑上的一致性,可以先转为PDF文档(XPS也可以,不过目前还不是标准)。或者在保存文档的时候,在word选项中把嵌入字体勾上。

寻章摘句



1月18日消息,德国政府有鉴于网络搜索巨头谷歌近期遭遇的黑客攻击,是利用微软的Internet
Explorer浏览器一个新漏洞,于上周末发出警告,提醒网络使用者改用其它浏览器,以保护个人计算机安全。 



北京时间3月23日上午消息,据国外媒体报道,由于火狐浏览器存在严重安全漏洞,因此德国政府上周五建议网民停止使用该产品。



依据浏览器占有率的报告,德国的Firefox占有率超过40%。



评论一下……不用这两个,剩下的核心不同的主流浏览器还有Opera、Chrome、Safari,外加一个微软自己都不推荐的IE for
MAC版。好吧,还有活路……


Monday, March 15, 2010

老软件怀旧—CCED



下图为CCED的运行截图。使用DOSBOX运行,挂载的是天汇中文系统。其它的中文系统(比如CCDOS,UCDOS)实在挂不上。

cced_001_thumb3

CCED早期使用Basic语言编写,4.0之后改用C编写。实际上有一段我刚学程序的时候很怀疑,那些菜单,复杂的显示怎么可能用平常算一些算术题的程序语言一点点编出来。

应该说CCED是DOS时代中国出现过的最强的字处理软件之一。在90年代初的时候,电子文档的管理并未形成风气,大多数单位采取的仍旧是打印的方法。

在这种大环境下,WPS最早有了模拟打印的设计。后来的CCED实际上也包含这个功能,但是不太方便。而且当时打印的实际尺寸和屏幕显示的尺寸相差还是比较大的。

cced_002_thumb1
在我看来,CCED实际上也并不很想跟WPS争市场,因为基本争不过。WPS自己反盗版技术还不错,但是把某一版卖给了希望公司,附带在了UCDOS的各个版本当中。而希望根本没做反盗版技术,这样这版WPS的盗版也泛滥了。虽然金山自己后来搞了一个WPSNT,界面模仿Windows,很华丽,但是也没挽回多少。

CCED基本上可以运行在任何的中文系统之下,没有挂载中文系统的时候显示的是乱码。但是我就曾见到过某版的CCED在未挂载中文系统时显示的是英文。

CCED强在对表格的强大控制,可以进行一些表格内部的计算,在这一点上WPS是远远不及的。WPS只能靠着改写模式勉强控制一下表格。

在当时,表头还经常使用斜线,CCED在5.02之后可以画斜线,但并非是编辑状态可以马上看到的。同时使用WPS和CCED是一个流行的方式,WPS对打印的控制比CCED强上不少。

至今WPS还在免费派发,CCED在2000之后基本上没有新版了,目前CCED的主页还保持着极为简朴甚至有些不靠谱的风格。

附带:CCDOS中的CC是“长城”的意思,而不是有些书上写的Chinese Character即“中文字符”。

Saturday, March 06, 2010

谷歌金山词霸



会导致Office 2007在打开文件时速度极慢,不推荐使用。

下图是Windows7波斯语……让人想起早期的《星际争霸》似乎自带了一个阿拉伯语的dll。

(图片被新浪干掉了)