很久没更新blog了,主要是这段时间工作太忙,刚加入一家创业公司 iboxpay,做移动支付,就是做中国版的Square
重新温习 socket之类的内容,翻看以前写的一些代码,整理一下,一个简单的 web server,放在 github:https://github.com/lytsing/myhttpd
这个例子很简单,但涉及到的内容都具备了:
- 基础socket使用
- 多路复用
- 信号处理
- 配置文件读取
等周末再完善,加上ipv6支持,当做一个学习的教程吧。
很久没更新blog了,主要是这段时间工作太忙,刚加入一家创业公司 iboxpay,做移动支付,就是做中国版的Square
重新温习 socket之类的内容,翻看以前写的一些代码,整理一下,一个简单的 web server,放在 github:https://github.com/lytsing/myhttpd
这个例子很简单,但涉及到的内容都具备了:
等周末再完善,加上ipv6支持,当做一个学习的教程吧。
进入 Broncho 不知不觉已经到了第四个年头。由于个人原因,选择在这个时候跟大家告别了,舍不得这么多年一起共事的同事,从华瀚科技到数字技术园,到方大,到照明中心,点点滴滴,见证了我们共同奋斗的岁月。
感谢 Broncho 首席架构师李先静的栽培,感谢卢芳带我进入无线通讯协议领域,感谢这一路来对我帮助、鼓励的同事(包括pre-Broncoers),最感谢的,是老魏,Broncho经营到现在,他是付出了最多的心血。曾记得,09年4月份老魏宣布放弃研发多年的Broncho 手机操作系统,转投入Android平台时的情形,我们都感到很难过。Broncho项目就像他的亲生孩子,忍心丢弃,这是需要多大的勇气与决心。值得庆幸的是,现在,Broncho已经度过了最艰难时候,也有很好的前景,我可以感到由衷的欣慰了。
很抱歉不能再跟许多朋友一起共事了;祝本公司越办越好,让我的同事们可以安居乐业。

正在研究G+ Android客户的一些设计方法,发现蛮复杂的。
很早就知道如何汉化 apk了,只是不屑于干那样的活,觉得没什么技术含量。上电子市场,发现好多人留言希望赶紧出中文版,需求蛮大的。台湾的兄弟早搞出来了,目前没有发现有简体中文的。大陆的兄弟们,是不是要跟上呢?小弟e文功底差,只能照着 google+ 网页中文版翻译一些基本的字段。翻译真是苦差活,随着使用G+的深入使用,会持续更新。有错误不妥之处,请留言提醒哈。
适用机型: Android 2.1以上
下载地址: http://lytsing.org/downloads/gplus-1.0.2.apk
更新:
忙了一个下午,再搜索,发现 Jay Chua 同学已经搞过了。看了他空间,网页字体不错,我也升级了wp。以后最好跟他一起汉化,免得浪费时间。
翻译心得:
1. 认真是一种能力,而不是仅仅是态度,既然要翻译了,就努力做好,不能做到一半就丢了。
2. 注意标点符号,注意圆角。
下载地址: http://lytsing.org/downloads/Vending-2.3.6-enable-paid.apk
如包名所示,我修改了几行代码,使它可以查看付费软件。
安装后,设置 – 应用程序 – 管理应用程序 – 全部 – 电子市场 – 清除缓存
适用范围:
Android 2.2,刷过 使用 test-key 签名的 第三方 rom ,比如大名鼎鼎的 CM.否则遇到下面的FC:
I/ActivityManager( 116): Process com.android.protips (pid 537) has died and restarted (pid 0).
E/DatabaseUtils( 364): Writing exception to parcel
E/DatabaseUtils( 364): java.lang.SecurityException: Permission Denial: writing com.google.android.gsf.settings.GoogleSettingsPrS
E/DatabaseUtils( 364): at android.content.ContentProvider
$Transport.enforceWritePermission(ContentProvider.java:325)
E/DatabaseUtils( 364): at android.content.ContentProvider $Transport.insert(ContentProvider.java:173)
E/DatabaseUtils( 364): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146)
E/DatabaseUtils( 364): at android.os.Binder.execTransact(Binder.java:288)
E/DatabaseUtils( 364): at dalvik.system.NativeStart.run(Native
Method)
W/dalvikvm( 353): threadid=33: thread exiting with uncaught exception (group=0x4001d7c8)
E/AndroidRuntime( 353): FATAL EXCEPTION: work-service-handler-thread
E/AndroidRuntime( 353): java.lang.SecurityException: Permission Denial: writing com.google.android.gsf.settings.GoogleSettingsPS
E/AndroidRuntime( 353): at android.os.Parcel.readException(Parcel.java:1247)
E/AndroidRuntime( 353): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
E/AndroidRuntime( 353): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
可能会出现的问题:
(一)下载软件,一直卡在“Download paused”/“下载暂停”。
解决方法:
1. 把SDCARD卸载。
2. 删除 “/mnt/secure/asec/smdl2tmp1.asec” 或者 sd卡上的空目录 “.android_secure”.
forward lock 干啥用?Android market有用到,开发者上传apk时候,可以设置。官方文档也说明了
http://developer.android.com/guide/appendix/market-filters.html
Forward-Locked Applications
To forward lock an application, set copy protection to “On” when you upload the application to Market. Market will not show copy-protected applications on developer devices or unreleased devices.
查看源代码,frameworks/base/core/java/android/content/pm/PackageManager.java 注释说明:
标识本应用属于受限应用,应用将会被安装到保护目录,只有该应用可以访问代码段和不属于resource的asset资源。
那么安装这样的一个 apk,需要设置 FORWARD LOCK 标志位。
1758 public abstract void installPackage(
1759 Uri packageURI, IPackageInstallObserver observer, int flags,
1760 String installerPackageName);
Android 1.5, PackageManager.FORWARD_LOCK_PACKAGE = 0×00000001;
Android 2.2 改成了 INSTALL_FORWARD_LOCK