订阅我的博客

注明:本文是为参加“首届 Google 暑期大学生博客分享大赛——2010 Andriod 篇”比赛而作。

“工欲善其事,必先利其器”,下面,我就带大家大致浏览一下Android应用开发中的一些常用工具,以供你择其善者而用。

一.  Eclipse + ADT

对于Eclipse,搞Java的同学们想必都很熟悉了,通过安装插件,可以将其灵活地打造成强大的、跨平台的集成开发环境,而ADT(Android Development Tools)就是Google官方推出的用于Android开发的Eclipse插件,它提供了从创建项目到编写代码再到在模拟器中运行、调试等各个环节的支持,可以说是Android开发的首选工具。

下图为在Eclipse里编写代码后在模拟器中查看应用执行效果(点击图片看大图):
ScreenShot1

ADT的安装也很简单,可以在Eclipse里通过地址:
https://dl-ssl.google.com/android/eclipse/  在线安装;另外,如果你像我一样网速悲剧到无法在线安装,也可以去这个页面下载插件包进行安装,至于具体方法嘛,问Google吧。

二.  DroidDraw

我们知道,Android中UI是通过编辑相应的XML文件设置的,虽然ADT中提供了一个可视化的编辑工具,不过用起来不是很方便,比如把一个按钮拖到屏幕上后,如果想控制它的位置,你只能直接编辑XML或者去属性里面改,而使用DroidDraw这个工具的话,一切都简单多了。
DroidDraw
DroidDraw是一个基于Java的Android界面设计器,你可以通过任意拖动来改变组件们的位置、通过鼠标拉伸改变组件的大小、方便地编辑组件的属性,然后它会自动为你生成对应的XML代码。点击看大图:

另外,它还提供了一个配套的Android应用AnDroidDraw,有了这个应用,在DroidDraw上设计好界面后,可以选择将设计好的文件发送到手机上直接预览其真实效果。
AnDroidDraw

三.  Sensor Simulator

Android系统支持重力感应,但是用模拟器显然没办法进行重力感应的测试(你不会以为抱着显示器晃就可以吧…)。
Sensor Simulator这个程序解决了这个问题。

它包括电脑端和模拟器端两个程序,把模拟器端的apk文件装到模拟器上,在电脑上运行电脑端,然后让二者连接,就可以通过在电脑端用鼠标拖动一个虚拟物体实现重力感应的模拟。如图:

Sensor Simulator

下载和使用方法请看其项目主页:
http://code.google.com/p/openintents/wiki/SensorSimulator

四.  App Inventor

开发Android程序一定要会编程吗?虽然现在答案是肯定的,但在不久的将来,没有学过任何程序设计的同学们也可以用几分钟搞定一个Android应用,这就是目前还在封闭测试的App Inventor项目,在这个软件里面,代码就是一块块的拼图,而开发一个应用就是把这些图组合起来,很让人期待吧!

这是它的主页:http://appinventor.googlelabs.com/about/

另外这里还有一个介绍视频:

有了这些好用的工具,现在就去开始你的Android开发之旅吧!(完)

注明:本文是为参加“首届 Google 暑期大学生博客分享大赛——2010 Andriod 篇”比赛而作。

  • Share/Bookmark

在草稿箱放了一段时间了,今天写完吧。。。

首先下载这个压缩包:  ChromeExTpl.zip。解压之后可以看到三个文件: icon.png ,  manifest.json ,  popup.html 这就是一个简单的Chrome扩展所需要的三个文件。

然后,打开 可以插入网页的Google 小工具的目录. 通过浏览或搜索找到你需要的小工具,

点击 “添加到您的网页”。 然后点击 “获取代码”,

用文本编辑器打开上面解压出的popup.html,把上面这段代码复制进去,保存。

发布

打开chrome的扩展程序页面

点击展开的  开发人员模式, 选择“载入正在开发的扩展程序”,然后选中扩展文件夹,就可以在本机上安装你开发的扩展;如果要打包成.crx的话,选择 “打包扩展程序”。

———————————————

Chrome扩展开发文档: http://code.google.com/chrome/extensions/docs.html

开发一个简单的Chrome扩展: http://code.google.com/chrome/extensions/getstarted.html

  • Share/Bookmark

就是把一个iGoogle上的人人网小工具搞成Chrome扩展了而已。。。。相关权利归原作者所有。。。

下载地址:https://chrome.google.com/extensions/detail/emakkilalakigbnhmgiofdappaihided

  • Share/Bookmark

今天看到木头同学在博客里晒了他们的未名Google版版衫
我也来晒一下我的iknow站衫:oh

摄像头拍的。。。

大家都说前面那团是胸毛。。

  • Share/Bookmark

由于某些原因,我的上一个帐号玉小乌已 经无法使用,于是我注册了这个新号。

第一件事就是怎么把以前的好友加 回来,手动添加这500多个好友显然是会很悲剧的,于是我写了个程序来做这件事。

这个程序可以自动把某个指定用户的全部好友加为自己的好友,

——————分割线—————–

下载及使用:

(1) Windows用户:

下载: RRFriendCopyer.exe (2.8M)

使用:


其中  要备份的用户的id   可以在它的个人主页的地址栏看到:


(2) Linux用户:

直接下载源码   RRFriendCopyer.py (2.1KB)

然后在终端中通过   python RRFriendCopyer.py   执行

使用同上。。。

————————————-

原理:

首先要获得目标用户的好友列表,


通过Firebug分析   玉小乌的好友 那个页面的搜索的请求,发现

可以向  http://friend.renren.com/friendfriendSelector发送请求,

参数是

p={‘init’:false,’qkey’:'friend’,'uid’:true,’uname’:true,’uhead’:false,’limit’:1000,’param’:{‘guest’:'xxxxxxx’}}

其 中guest是目标用户的id。

返回的数据是json格式。

然后再去分析一下添加好友时的请求。

请求是这样 的:

http://friend.renren.com/ajax_request_friend.do?from=sg_others_profile&codeFlag=0&requestToken=1756152095&why=&id=xxxxxxxx

于 是遍历上面得到的好友列表,将id作为参数post出去。

本来以为这样就行了,但是没想到才加了四五十个就不行了,原来每天添加的好友数大 于50(貌似?)个的话,再加好友就要输入验证码了。。。

然后就想等以后看看怎么破解验证码再搞吧。。。结果下午又发现了一个不用验证码的 方法。

再加好友的时候,看到弹出了这么个框,

选中一些人后,点下按钮就可以了,不用输验证码。

于是用Firebug看了下,请求地址 是:http://friend.renren.com/ajaxRequestFriendBatch

参 数:”friends”:None,

‘from’:’sg_friendumayknow’,

‘requestToken’:1756152095

其中friends是要添加的人的id,多个的话用 “,” 隔开。

完。

  • Share/Bookmark

纯粹为了方便。

把这个文件下载解压后,把tran这个文件sudo mv到/bin就可以了。

可以进行汉->英 和 英->汉 的翻译,且支持句子。

效果如下:

screenshot

screenshot

  • Share/Bookmark

每天

第一个上床

最后一个进入梦乡

被每一个起床的人吵醒

然后起床

我是不是有啥心理/神经疾病啊。。。。

  • Share/Bookmark

评论邮件通知是增加博客评论互动的一个好方法,我觉得也是唯一行之有效的方法,你总不能让别人为了看你的回复成天来刷你的博客吧。

不过有些主机不支持发送邮件,比如我用的这个,我也为此纠结了很久,昨天终于想到了一个办法,终于搞定了。

思路如下:

首先要有@ Reply这个插件,它的功能是在博客的每条留言旁边加一个“回复”的链接,点击后会自动在留言板里填好回复信息,比如:

@<a href=”http://wong2.cn/?p=158&cpage=1#comment-105″>zpc</a>:

然后就可以写下对他的回复。

当用户点击提交评论按钮的时候,首先用onsubmit=”return false;”阻止表单的提交,点击按钮会触发onclick事件,执行我的sendemail()函数,这个函数首先获得留言板内的文字,然后用正则匹配出“#comment-”后面的那个数字,比如这里的105,这个数字就是这条评论的comment-id,(去数据库里看一下,可以发现每条评论都有一个不同的comment-id),然后ajax异步向一个php文件发送这个数字,php接受后去数据库里查找这个comment-id对应的作者的email,并返回,js获得email后,把它和评论内容、当前页面链接一起传送给我假设好的一个google app engine应用,这个应用的作用就是用我的邮箱向指定的email发送指定的内容,这样就完成了发邮件的过程。。。

不过今天早上在床上突然想到这样做有一些安全隐患,等我想好解决办法后再公布具体方法吧。。。

另外昨天测试的时候貌似给zpc童鞋发了不少垃圾邮件,希望没有对他造成干扰。。

  • Share/Bookmark

高中玩的,上两个星期复习数值分析看到牛顿法的时候又想起来了,在这里记下。

所用的计算器就是普通的科学计算器,就是那种双行的,可以编辑表达式,最重要的是有 Ans 这个键(一般在 “=” 旁边)。

这个是我的计算器:

casio fx-82MS

casio fx-82MS

举个例子吧,比如我要求方程 x^4 + 3* x^2 – 5*x -18 = 0的 一个解,首先

令 f(x) = x^4 + 3* x^2 – 5*x -18 = 0 然后计算出 x-f(x)/f ‘(x) 的表达式,此处为: x-(x^4 + 3* x^2 – 5*x -18 )/(4*x^3 + 6 * x – 5) = (3*x^4 + 3*x^2 +18)/(4*x^3 + 6 * x – 5)

然后选择一个初值 x0 ,比如我选 x0 = 11

在计算器里输入: 11 , 然后按 “ =  ” 号,

接着输入: (3* Ans ^4 + 3* Ans ^2 + 18)/(4 * Ans ^ 3 + 6 * Ans - 5) ,然后不停地按 “ = ” 号,直到计算结果不再变化为止,这就是方程的一个(近似)解。 我这里是2,很巧是个整数,巧合巧合。。。

那么2是它的解吗?代进去算算吧: 2^4 + 3 * 2 ^ 2 – 5 * 2 – 18 = 16 + 3 * 4 – 10 – 18 = 0,这说明2确实是原方程的一个解。

原理就是牛顿法,以下几段摘自维基百科牛顿法条目

首先,选择一个接近函数f(x)零点的x0,计算相应的f(x0)和 切线斜率f‘(x0)(这里f表示函数f的导数)。 然后我们计算穿过点(x0,f(x0))并 且斜率为f‘(x0)的直线和x轴的交点的x坐 标,也就是求如下方程的解:

x\cdot f'(x_0)+f(x_0)-x_0\cdot f'(x_0)=0

我们将新求得的点的x坐标命名为x1,通常x1会 比x0更接近方程f(x) = 0的解。因此我们现在可以利用x1开始下一轮迭代。迭代公式可化简为如下所示:

x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}

已经证明,如果f是连续的,并且待求的零点x是 孤立的,那么在零点x周围存在一个区域,只要初始值x0位于这个邻近区域内,那么牛顿法必定收敛。 并且,如果f‘(x)不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。

计算器的Ans符号表示的是上次计算的结果,所以我们可以利用它来进行迭代。

至于初值x0的选取,以前我都是随便选个数,不过 数值分析课本里有这样的结论: 初值x0 满足 |f ‘(x0)| ^ 2 > |f ”(x0) / 2| * |f(x0)| 且f ”(x0) != 0 时,可以保证大多数情况下牛顿法的收敛性。 不过我一直随机选数貌似也没出过问题。。。巧合巧合。。。

  • Share/Bookmark

终于考完试了。。。

上次说到卡在PyQt模拟登录上了,本来准备等考完试再看看这个问题,不过有一天在CPyUG里看到有人说可以用win32com库控制IE,于是我放弃了先前的思路,改用这个来做,果然简单多了。

其实就是用Python控制IE,打开登录页面,模拟输入用户名、密码还有两个隐藏表单,然后点击登录按钮,登录后,打开要下载的相册中的一张照片,在DOM里就可以得到图片的地址,把它保存在一个list里,然后模拟点击这张图片,就会跳到下一张,再保存一个图片地址,如此循环下去,直至获得相册中所有图片的地址。之后遍历这个list,把所有图片保存下来就可以了。只不过在这个过程中,IE是被设为不显示的,所以你看不到它。

exe 下载地址:http://wong2.cn/works/rr/renren.html

上上周吧,在人人网写了篇日志发布了一下这个小程序,不过下载量不大,莫非大家没有这个需求?

悲剧的是,源代码找不找了,想来是前几天把虚拟机里的win7换成xp时没有拷下来。。。。

  • Share/Bookmark