pawa on December 14th, 2008

翻开这期的第一财经周刊,看到主编的开篇文章,一段话醍醐灌顶:
伟大的公司应该有鲜明的形象、强势的企业文化、与消费者体验息息相关的亲和力,或许还应该具有输出价值观的能力
终于明白为什么那些优秀的、伟大的公司让人尊敬和向往。虽然我们现在只是几个人凭借爱好聚在一起,也许我们永远不能被成为伟大,但我们希望我们不但能输出好的产品,而且能输出对社会、对我们热爱的软件开发行业有用的价值观。
我们做有用的、简单易于使用的产品
我们做到我们能做到的最好
我们分享我们的经验,我们保持开放的心态
我们追求永无止境,我们一起努力!
UPDATE:又看到了一篇BLOG,是我们的同行,说出了我们的心声,也是我们要遵循的价值观:
便宜的打败贵的,质量好的打败质量差的,认真的打败轻率的,耐心的打败浮躁的,勤奋的打败懒惰的,有信誉的打败没信誉的……

Continue reading about 伟大的公司输出价值观

猪头小队长 on December 10th, 2008

现在,吵吵闹闹的要生产Android手机的厂商越来越多,从开发者的角度来说,不能不说这是一件好事,毕竟写出来的程序可以顺利的跑在更多的设备上,但是参差不及的硬件选择也给我们带来了很大的麻烦,最直接的就是不同的手机屏幕的尺寸可能不一样,又不能为每种尺寸都设计一套布局,所以就有可能需要在程序运行时来通过屏幕的大小来动态的调整一些布局相关的参数。那如何获得屏幕的大小呢?
在android.app.Activity中提供这样的方法:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;

其中,screenWidth就是屏幕的宽度,screenHeight就是屏幕的高度。
如果将手机从肖像模式(竖着拿)变成风景模式(横着拿),这两个值也会随之改变,所以,也许我们不用这种方法,也可以推算出手机的手持方式,从而来改变一些布局参数。

Continue reading about 如何在运行时获得屏幕尺寸?

pawa on December 10th, 2008

这是所谓的 Sciphone G2。不过视频模糊的一塌糊涂,只能看个大概,但似乎还比较流畅,也没有太多错误信息。感觉虚拟键盘还不错。就是这个 Android Home Edition V1.0 比较蒙人,从来没看到 GOOGLE 有这样的分法,看来要山寨到底了。不过即便这样,也比那个 OMS 强,这个中国移动以及风险投资支持的 Borqs 播思通信,网站上一个 Andorid 都没出现过,更NB的是号称 “具有完全自主的知识产权”,真不知道是怎么来的,佩服一个!

不管怎么样,似乎山寨离我们越来越近喽……
另外一条新闻,Open Handset Alliance 又增加了14个成员 ARM,华为,华硕,索尼爱立信,东芝,沃达丰这样的重量级玩家在列,另外上边说的 Borqs 也就是这个播思通讯也是成员了,千万别太丢脸了啊。更加期待 2009 的 Android 满天飞了。

Continue reading about 又一款山寨视频

猪头小队长 on December 9th, 2008

在Android平台上可以操作数据库,这是第一次接触Android时的惊艳之一。在Android平台上,绑定了SQLite数据库,这个数据库系统也是极具性格的,它的最大的应用场景是嵌入式系统,进一步了解可以参看这里。
如果有JDBC的经验,那么在这里会容易的多。Android中操作数据库首先要通过一个 类:android.database.sqlite.SQLiteOpenHelper。它封装了如何打开一个数据库,其中当然也包含如果数据库不存在 就创建这样的逻辑。看一个例子:

pubilc class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "com.roiding.simple.note";
private static final int DATABASE_VERSION = 1;
private static final String NOTES_TABLE_NAME = "notes";

DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + NOTES_TABLE_NAME
+ " (id integer primary key autoincrement, name text);");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP [...]

Continue reading about Android数据存取之Databases