yava 2017-06-29T08:23:21+00:00 xie@yihui.name xiniaobu.com 2014-03-22T00:24:22+00:00 yava http://www.hijava.org/2014/03/xiniaobu.com 最近媳妇也加入了海淘大军,疯狂的给还未出生的宝宝买各种东西。

渐渐的了解了母婴海淘这个领域,淘宝代购鱼龙混杂,总感觉不靠谱;自己海淘却需要了解各大转运公司和购物网站,非常耗费时间和精力。

于是洗尿布就诞生了。

我们会把海淘的全部过程记录下来,用心帮大家做点事情。

这些琐碎的事交给我们就好了;)

]]>
微信公众帐号dict123 2012-11-15T15:48:22+00:00 yava http://www.hijava.org/2012/11/dict123 最近做了一个微信查单词的应用dict123,可以用来翻译和查单词,开发借助了微信公众平台AppFog云平台。

话说AppFog真不错,2G免费内存,支持各种主流编程语言,用af命令来维护和部署很方便。

image

欢迎微信好友“dict123”

image

]]>
Sublime Text2 2012-07-28T06:17:22+00:00 yava http://www.hijava.org/2012/07/sublime-text2 使用了一上午Sublime Text2,发现果然是一神器,完全超乎了我的想象。以前还担心转到Mac OS X后找不到Source Insight的替代品,现在看来完全是多虑了。

关于Sublime Text的介绍,@lucifr写了一系列详尽的文章,见这里:http://lucifr.com/tags/sublime-text/。在这里我只是记录一下我的配置过程:

安装Sublime Package Control

ctrl+` 调出控制台,然后在控制台中执行如下命令:

import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

安装Ctags,用于变量方法定义跳转

  • 快捷键“Ctrl+Shift+P”打开命令面板,选择“Package Control : Install Package”,搜索Ctags进行安装
  • 在sublime项目文件夹右键, 出现Ctag:Rebuild Tags 的菜单,然后点击生成.tags的文件(相当于Console下执行ctags -R -f .tags
  • 重新打开Sublime,将光标停在某个变量或方法名称上,“Ctrl+Alt+]”快捷键就能跳到变量或方法定义的位置,“Ctrl+Alt+[”返回调用前位置

安装Gist插件,作为代码片段管理器

快捷键“Ctrl+Shift+P”打开命令面板,选择“Package Control : Install Package”,搜索Gist进行安装 安装完后在Tools菜单下有一个Gist子菜单,可以将选则的代码片段保存到GitHub Gist上。

修改快捷键,Settings-User设置内容如下(还在慢慢完善中…):

[
	{"keys": ["super+j"], "command": "navigate_to_definition"},
	{"keys": ["super+shift+j"], "command": "jump_back"},
	{ "keys": ["super+k"], "command": "find_under" },
	{ "keys": ["super+shift+k"], "command": "find_under_prev" }

] command+k往下查找选取关键词,command+shift+k往上查找   command+j跳转到定义位置,command+shift+j返回 < 覆盖了Ctrl+Alt+] 和 Ctrl+Alt+[ >
]]>
自动更改Android项目包名 2012-07-25T14:08:22+00:00 yava http://www.hijava.org/2012/07/change-android-project-package-name 写了一段Shell脚本用于更改Android项目包名:

#!/bin/bash

old_package_name="com.xianguo.pad"
new_package_name="com.xianguo.play"

cd ..

find . -name "*.java" | xargs sed -i -e "s/${old_package_name}/${new_package_name}/g"
find . -name "*.xml" | xargs sed -i -e "s/${old_package_name}/${new_package_name}/g"
find . -name "*.cfg" | xargs sed -i -e "s/${old_package_name}/${new_package_name}/g"
find . -name "*.html" | xargs sed -i -e "s/${old_package_name}/${new_package_name}/g"

mv src/${old_package_name//./\/} src/${new_package_name//./\/}
]]>
Subversion Native Library Not Available 2012-07-22T02:35:22+00:00 yava http://www.hijava.org/2012/07/subversion-native-library-not-available 在Mac OS X系统下使用eclipse的subclipse插件时报了如下错误:

Failed to load JavaHL Library. These are the errors that were encountered: no libsvnjavahl-1 in java.library.path no svnjavahl-1 in java.library.path no svnjavahl in java.library.path java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java

解决方式十分简单,安装JavaHL即可:

sudo port install subversion-javahlbindings

参照链接:在Mac OS X上安装JavaHL

]]>
拥抱Jekyll 2012-07-08T13:54:23+00:00 yava http://www.hijava.org/2012/07/migrate-from-wordpress-to-gihub-pages-jekyll 周末花了一天时间把Blog从WordPress迁移到了GitHub Pages,过去一年Blog一直托管在Godaddy上,不知什么原因,网站一直不稳定,访问速度奇慢,以至于连写文章的欲望都没有了。

幸好有了GitHub PagesJekyll .

Jekyll是一个简单的静态站点生成引擎,GitHub Pages 对其提供了原生支持,你可以用TextileMarkdown语法进行写作,提交到Github后会自动转换成Html.

Git+GitHub+Jekyll+Markdown 成了最佳的写作方式,至此你可以像黑客一样写博客了

PS.偷用了Yihui Xie的模板,希望不会介意:)

关于GitHub PagesJekyll的介绍可以参照下面几篇文章:

]]>
如何去掉Android App里的内置广告 2012-01-01T02:12:23+00:00 yava http://www.hijava.org/2012/01/how-to-remove-ad-in-apk 1、使用apktool 工具反编译 myapp.apk文件

apktool d myapp.apk myapp/

2、修改layout文件,找到广告对应的View,将layout_height 与 layout_width 设置成0dip

3、使用apktool 重新打包修改过的源文件

apktool b myapp

新生成的myapp.apk 在myapp/dist目录下

4、使用jarsigner对新生成的apk进行签名

jarsigner -verbose -keystore key.keystore -signedjar myapp_signed.apk myapp.apk passwd

myapp_signed.apk就是去掉广告后的apk文件

]]>
利用Ant脚本实现Android项目自动批量打包 2011-06-25T06:50:21+00:00 yava http://www.hijava.org/2011/06/auto-build-batch-of-apks-use-ant-in-android-project 因为Android项目加入了有盟统计,每次升级都需要单独针对每一个market或论坛打一个apk,这样当渠道变得越来越多时,打包就变成了一件相当繁琐的事情。

其实可以用Ant脚本来实现自动批量打包:

一、为Android项目增加自定义Ant支持: 这里有一篇非常不错的介绍说明:
Using Ant to Automate Building Android Applications 不过有一点不太准确:android_rules模板文件,应该采用android-sdk-windows\tools\ant\main_rules.xml,文章中的android_rules.xml 或 ant_rules_r#.xml都有问题。

二、在build.xml中增加如下代码:

 <target name="deploy">
   <foreach target="modify_manifest" list="${market_channels}" param="channel" delimiter=",">
   </foreach>
 </target>

<target name="modify_manifest">
	<replaceregexp flags="g" byline="false">
	<regexp pattern="android:value=&quot;(.*)&quot; android:name=&quot;UMENG_CHANNEL&quot;" />
	<substitution expression="android:value=&quot;${channel}&quot; android:name=&quot;UMENG_CHANNEL&quot;" />
	<fileset dir="" includes="AndroidManifest.xml" />
	</replaceregexp>
	<property name="out.release.file"
				  location="${out.absolute.dir}/${ant.project.name}_${channel}_${app_version}.apk" />
	<antcall target="release" />  
</target> taskdef 声明需要放到较前位置,因为if condition也会用到此声明。

build.properties文件增加: market_channels=UMENG,XIANGUO,MARKET,HIAPK,GOAPK app_version=1.2.1 market名称用逗号分隔

执行ant deploy会自动在项目bin目录下生成如下apk文件:

]]>
初学者如何学习Android 2011-06-18T12:57:55+00:00 yava http://www.hijava.org/2011/06/beginners-how-to-learn-android 这是我在知乎上的回答:http://www.zhihu.com/question/19611325

http://stackoverflow.com/ 初期遇到的问题,stackoverflow总能找到。 http://stackoverflow.com/questions/tagged/android?sort=votes 投票最多的几个问题,空闲时看看。

SDK文档:建议除Reference以外,全部看一遍。

订阅几个不错的博客: http://blog.csdn.net/Android_Tutor/ http://www.helloandroid.com/ http://www.poemcode.net http://android-developers.blogspot.com/ http://blog.csdn.net/hellogv http://flyvenus.net/

加入邮件列表: http://groups.google.com/group/china-android-dev/ http://groups.google.com/group/android-developers/

定期去SlideShare找些ppt看,下载到ipad上看很爽。 http://www.slideshare.net/search/slideshow?q=android/

阅读源码: http://android.git.kernel.org/ http://code.google.com/p/apps-for-android/ http://code.google.com/p/iosched/ https://github.com/kaeppler/droid-fu 网络图片下载及缓存

]]>
WebView宽度自适应 2011-06-18T12:56:07+00:00 yava http://www.hijava.org/2011/06/webview-auto-fit 用WebView组件显示普通网页时一般会出现横向滚动条,这样会导致页面查看起来非常不方便。其实通过设置WebSettings的属性可以轻易地解决此问题,不过此设置隐藏的比较深,一般很少人会用到。 webSettings= webView.getSettings(); webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); LayoutAlgorithm是一个枚举,用来控制html的布局,总共有三种类型: NORMAL:正常显示,没有渲染变化。 SINGLE_COLUMN:把所有内容放到WebView组件等宽的一列中。 NARROW_COLUMNS:可能的话,使所有列的宽度不超过屏幕宽度。

]]>