Voice Fighter for Android is Open Source! Check it out on github !
Archive for Android
我的Android收入情况
我开发Android程序已经5个多月了,一共4款应用。我放上我的收入的具体明细。
啊啊啪–v1.1 声音处理开源
“啊啊啪”已经发布6天了,到目前4月21日 ScoreLoop统计的最高分一共有: 12539个,估计有很多Android初学者对声音处理都比较感兴趣,所以我现在把声音处理部分的代码放上来。
Q:为什么要发布这段代码?
A:因为我的啊啊啪尝试用了proguard保护和优化代码,所以大部分代码都被混淆过,那些以学习为目的反编译apk的同学看起来就有点困难。所以放上下面这段声音处理的全部代码。
Q:为什么不全部放上来?
A:因为游戏其他部分都甚为简单不值一提,所以暂时就不放上来了。
Q:你放上来有什么不可告人的目的吗?
A:有的,根据我从论坛用户收到的反馈来看,下面这些机型在运行啊啊啪的时候有很多问题。 MEIZU M9(部分M9可以正常运行),索尼爱立信 x10(x10 mini pro可以运行),Acer a1,三星i9000(2.2),Atrix 4g,LG GT540,三星 I858…… 这可以看出来Android手机的不同机型差异实在有点大。这直接导致了我在谷歌market 里面发布后,总评不到3星的悲惨情况。放上这段代码喜欢能看到代码的同学引以为戒,并且能够找到好的方法来解决各个机型上面的差异。不然在android上面开发声控游戏是完全没有前途的。如果你有好的解决方案你可以留言或通过邮件告诉我,或者发布后通知我一下,开源是一种程序员很牛X的态度:)
目前我自己尝试过的解决方案是加入敏感度调节,但是收效甚微。我想到的另一种方案是:在游戏第一次开始的时候叫用户发出“啊” 和 “啪”的声音,记录下来,平均处理一下,游戏中就使用处理后的值,这种方法应该很不错,我可能会在之后尝试一下这个方法。
Android开发体会
从我开始学习JAVA和Android编程到现在已经快5个月了,目前有3个免费游戏发布(http://codeand.me)。去年12月份你我买了一个二手(14天机) HTC G1 ¥1200 然后开始了我的Android游戏编程。
我现在的体会是:Android开发在某国确实很难赚钱! 下面我描述一下我的感受,里面的内容都是感受,只不过是我这段时间以来对这个行业的了解和体会,我并没有做过任何详细的统计和调查,请选择性阅读:)
1.Android手机的混乱
这是搞技术的人一个很头疼的问题,非常多的屏幕分辨率。用Android Canvas制作的游戏还很难全屏,因为不能直接拉伸,只能自己设定各个图片的相对位置。我在制作“蛋人跳吧”的时候,开始自己用Canvas吧整个游戏都写完了,已经准备发布,在发布前用模拟器做了一下各种分辨率的测试,然后就悲剧了,无法修正的悲剧,后来只能改用AndEngine重写一遍。还有就是在制作“蛋人跳吧”的时候,我的游戏做了一半,我发现了个程序框架上的Bug,无法修复我用的是Lunar lander 那个著名的Android 开发文档里面的例子! 这个有bug的例子尽然坚挺了多年而没有被修复过!这也浪费了我不少时间。
手机硬件的差异还体现在我的新游戏“啊啊啪”上面,一个iPhone声控飞机的克隆游戏。里面用到了AudioRecord来获取麦克风的输入信息,这个游戏果断的在不少手机上面无法运行,在各种手机上面有不同的表现(虽然我后面增加了声音敏感度调节功能)。独立开发者不可能有那么多手机来测试的,最好情况也就3-4个,而Android系统的热卖机型那就数不清了。就算我有那么多的机型可以测试,以一个人的力量或者少数几个人的力量也需要花费非常多的精力来一个个解决这些问题。还有不少问题可能是无法解决的,跟手机硬件相关的。这点确实令人沮丧。
Android开发资料记录(二)
如果感兴趣你可以阅读:Android开发资料记录(一)
Android Canvas 的抗锯齿(Anti-Alias)设置
http://www.javaeye.com/topic/794505
法一:直接设置Paint paint.setAntiAlias(true);
法二:不能设置Paint的函数可以用:
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
原文中给出了两种方法的对比,方法二的效果是最好的。
这两种方法都可以用在文字的渲染上。
我在我自己的程序里面实验了下第一种方法。我的图片是一个64×64的小方块,方块一直在移动,并且有一定的旋转,用了第一种方法后锯齿效果更明显。可能是图片的原因。
Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
这个方法也是可以开启 Paint的抗锯齿调用起来比较方便。
一个Android的详尽教程网站
http://www.helloandroid.com/
Android的教程网站,里面有很多有用的教学文章,涵盖Android编程几乎所有方面。
学习Android Canvas编程的非常好的学习示例
Lunar lander 的代码,学习Android Canvas 游戏编程的一个很好的示例。(需番羽墙)
http://developer.android.com/resources/samples/LunarLander/index.html
http://www.anddev.org/2d_tutorial-t3120.html 有人把这个游戏代码简化了,做了一个非常简单的游戏框架。非常不错。
注意:这两个框架有个严重的BUG,就是在运行这个框架做的游戏的时候,如果有电话打进来或者你点击率home键,在从新恢复游戏的时候,游戏会崩溃,网上的解决办法都不能够完美解决。
还有个更好的框架:看Chris pruett 的简易框架,这个项目里面包括了 简单的opengl es 和 Canvas的框架
http://code.google.com/p/apps-for-android/source/browse/#svn%2Ftrunk%2FSpriteMethodTest
Google I/O 2010 – All Android Talk Videos
Google I/O 2010 的全部演讲视频,有简要介绍。(youtube视频)
http://www.anddev.org/announces/google-i-o-2010-all-android-talk-videos-t14798.html
让你的Android应用在运行的时候屏幕不变暗。
默认情况下,Android应用会在系统设定的指定时间内没有点击事件后就会把屏幕变暗,然后到一定时间就关闭屏幕。下面的代码可以让你的应用开启的时候屏幕永远处于激活状态。对于好多应用和游戏都非常有用。
代码在:http://www.androidsnippets.org/snippets/53/
不要忘记在AndroidMainfest.xml 里面获取授权:
<uses-permission android:name="android.permission.WAKE_LOCK" />
