免费手机程序 靠广告吃饭之有米广告篇
数字职场
本期挑战题目
绝大多数的鼠标都带有一个滚轮,它可以方便实现某些功能,例如翻页等,你可以编写一个控制鼠标滚轮的小程序吗?
上一期我们介绍了Admob广告,但是由于语言等差异,有的开发者朋友可能觉得它不适合自己的程序,那怎么办呢?别急!目前,中文移动广告厂商也正在崛起,其中最出名的就是有米广告。
在使用有米广告的软件中,一款叫做《蓝牙三国杀》的软件的作者,每月可以获得近万元人民币的广告收入,这个收入水平即使在付费软件中,那也是最高级别的了。是不是心动了?想不想为自己的程序添加中文广告?Let’s go!
为什么要选有米广告
有米广告(Youmi.net)是国内第一家手机应用广告平台,由于贴近开发者,拥有全中文广告和广告展现形式本地化创新,因此受到很多开发者的欢迎。截至9月中旬,有米的广告投放量已经超过2亿次,占领了国内移动广告市场相当大的份额。
有米广告支持哪些平台
有米广告支持Android、J2ME、Symbian、Windows Mobile等主流平台,从支持的平台来看比Admob广告要多,开发者选择的余地比较大。需要注意的是,由于中国移动的限制,目前有米广告还不支持移动的Mobile Market。
有米广告的特点是什么
有米广告是知名度较高的中文广告商,信誉度有保障,它投放的都是中文广告,容易被国内用户接受,比较符合国情。另外,和Admob广告相比,投放有米广告后收款方便,不需要单独办卡,且跟广告商沟通更加容易、更有效率。
有米广告的报酬是多少
有米广告的报酬还是比较可观,通常用户点击一次,开发者可以获得0.2元人民币左右的报酬。此外,有米广告还经常举办活动,在活动期间,报酬会提高,例如最近的活动,报酬就超过了0.2元人民币。
这样添加有米广告
使用有米广告SDK嵌入广告以前,需要注册一个有米账号(注册地址:http://www.youmi.net),注册以后就可以在网站上根据要求输入相关内容,添加成功后即可获得程序ID和程序密钥,并可以根据程序的种类下载对应的SDK。
有米广告将根据该程序ID和程序密钥来统计软件的使用信息,这些使用信息可以在有米网站中查看。下面我们以J2ME SDK为例介绍有米广告SDK的使用(其他平台的SDK使用方法请参看相关文档)。
第一步:将下载的SDK文件(youmiad-j2me.jar)导入到工程中,然后在程序中设置程序ID和程序密钥,建议在midlet的开始处startApp中设置程序ID和程序密钥(注意程序ID和密钥只允许设置一次)。代码如下:
AdManager.setAppID("a14b849356d8a6d"); //设置程序ID
AdManager.setAppSecret("12345678"); //设置密码
//测试模式, 如果不是测试模式的话可以不设置,因为默认不是测试模式
AdManager.setTestModle(true);
//请确保你在调试的时候设置测试模式为true,在发布应用的时候设置为false或者不设置。
第二步:在程序需要启动广告的位置,添加如下代码就可以在程序开始时启动广告线程了。
AdManager.startAdThread();
接着初始化广告条数据,通过声明和创建com.umlife.me.ads.AdView对象达到目的,关键代码如下所示(完整代码下载地址:http://www.icpcw.com/bzsoft):
private AdView adView;
public CMCanvas(){
adView = AdView.getAdViewInstance(this); //初始化对象
adView.setPerfectAbsoluteY(0); //设置广告条y坐标
adView.setHotKeyCode(KEY_STAR); //设置广告条响应按键为*号键
第三步:绘制广告条。在界面的paint的末尾,绘制广告条。代码如下:
protected void paint(Graphics g) {
//添加你自己的绘制代码
//最后绘制adView 本身, 保证显示在最上面
this.adView.paint(g);
}
然后在keyPressed方法中处理按键事件,代码如下:
public void keyPressed(int keyCode){
boolean res = this.adView.handleKeyPressed(keyCode);
if(!res){
//程序自身的按键处理代码
}
}
//触摸屏事件处理和这个类似,可以参看SDK说明文档
这样就完成了将有米SDK嵌入到程序中的步骤了(见图),如果需要设置各种参数,例如广告条的外观等,可以参看SDK的API文档。

露一手
很多编程爱好者踊跃参与了上期的挑战题目,给我们发来了精心编写的代码,我们非常感动。在所有挑战者中,来自广东的管游云表现得非常耀眼,他的程序考虑周到、高效实用。经过慎重考虑和比较,我们决定给予广东的管游云现金奖励。关键代码如下所示:
for ( i = 1; i <= n; ++i )//把后面相同的去掉
{
k = 0;
for ( j = i + 1; a[i] >= 0 && j <= n; ++j )
{
if ( a[i] == a[j] )
{
a[j] = -1;
k = 1;