Android开发
文章平均质量分 53
langresser
这个作者很懒,什么都没留下…
展开
-
mac和windows下编译运行fbreaderj的过程
FBReaderJ是android上的一个开源电子书项目(http://www.fbreader.org/)mac下编译运行的步骤:1、安装好eclipse android-sdk android-ndk,并做好配置。mac下比较简单,就是eclipse里面配置好路径就可以了。2、下载fbreaderj的代码,并解压3、新建一个空的android工程,这里可以选择从现有文原创 2012-03-30 04:05:36 · 3757 阅读 · 2 评论 -
iOS和android游戏纹理优化和内存优化(cocos2d-x)
(未完成)1、2d游戏最占内存的无疑是图片资源。2、cocos2d-x不同平台读取纹理的机制不同。ios下面使用CGImage,android和windows下是直接调用png库。我测试了下,使用png库直接读取png会比CGImage还要节约1mb左右内存(图片所占内存4mb)但是速度要比CGImage慢一倍。时间和空间如何取舍就看实际情况了。不过最佳的选择似乎是pvr(即使androi原创 2012-12-24 22:01:15 · 34153 阅读 · 4 评论 -
内存调试的东西D/dalvikvm( 809 ): GC_CONCURRENT freed
1. verbosegc 一般Java虚拟机要求支持verbosegc选项,输出详细的垃圾收集调试信息。dalvik虚拟机很安静的接受verbosegc选项,然后什么都不做。dalvik虚拟机使用自己的一套LOG机制来输出调试信息。 如果在Linux下运行adb logcat命令,可以看到如下的输出: D/dalvikvm( 745): GC_CONCURRENT fre转载 2013-01-25 09:36:56 · 2111 阅读 · 0 评论 -
跨平台的多线程断点续传下载库
基于linux命令行程序axel。支持window(尚有bug待调整)linux, mac,ios和android。ios和android已经调试完毕,功能正常。支持特性:1、跨平台,代码简洁2、多线程下载3、支持断点续传代码托管于github:https://github.com/langresser/libdownload原创 2013-01-26 15:57:55 · 3190 阅读 · 0 评论 -
实现In-app Billing (IAB Version 3)
(未完成,可能存在误解的地方)详细文档参考: https://developer.android.com/google/play/billing/billing_integrate.html#billing-add-aidl 如果在Google Play发布应用,不能使用第三方充值渠道,只能使用Google的In-app Billing, V3版本的接口是google发布的最原创 2013-02-05 01:12:32 · 10617 阅读 · 12 评论 -
android bionic缺失pthread_cancel的解决方法
在native code中使用多线程好处多多,但是Android的bionic并没有完全实现标准POSIX线程库的所有API,例如pthread_cancel()。但是google这样做肯定有原因,被cancel的thread不一定已经把自己拥有的资源释放掉,因此很可能带来内存泄露,锁没有释放等问题。这些问题在移动设备上更加突出。首先介绍一个指标的方法,使用signal替代ca转载 2013-01-22 18:32:17 · 3194 阅读 · 0 评论 -
webp图片格式在手持设备性能测试
cocos2d-x最新支持了webp图片格式,google在2010年发布的这个图片格式具备比jpg和png更高的压缩比,并且支持alpha通道。图片体积对比:原始图片(map_008_BG_2.png 1024*1024的一张背景图) 大小910k压缩为png8 369k压缩为webp(-q 90) 115k可见,webp在图片体积的压缩上是非常有原创 2013-02-17 12:33:10 · 7740 阅读 · 0 评论 -
解决三星S2 i9100声音播放崩溃(CocosDenshion)
三星S2 i9100机子声音驱动有bug,导致SoundPool播放音效过多的时候崩溃。子弹连续射击的音效在这台机子上几乎是必杀技。 cocos2d-x有解决这个问题,使用了OpenSL,这个是类似OpenGL的一种声音标准,android2.3以上的系统有支持。 非i9100的设备使用SoundPool,i9100设备使用OpenSL播放音效。 cocos2原创 2013-03-05 16:28:05 · 4387 阅读 · 1 评论 -
Android下获取设备唯一标识(UDID, DeviceID...)
android下获取设备唯一标识原本非常简单(至少不会像iOS一样禁用这个,禁用那个),但是由于设备的多样性需要考虑的东西也对应复杂起来。先附上完整代码protected static final String PREFS_FILE = "gank_device_id.xml"; protected static final String PREFS_DEVICE_ID = "原创 2013-07-18 21:02:56 · 35993 阅读 · 3 评论 -
cocos2d-x中luajit的使用
新版本的cocos2d-x使用了luajit来替代原始的lua,好处一是可以极大的提高运行速度(android下可以开jit,运行速度提高10~60倍,ios下不可以开jit,运行速度也可以提高2~3倍)。 二是luajit编译的字节码现阶段来说无法反编译,也就是说无法破解。 这里对luajit进行详细的说明。 1、基本使用。这个很简单,不用修改任何代码,与lua5.1完全兼容。原创 2013-07-19 16:38:42 · 13049 阅读 · 9 评论 -
在Android.mk文件中输出打印消息
[plain] view plaincopyprint?在进行Android NDK的开发当中有时想看看Android.mk文件当中某个变量的值,可以再Android.mk文件当中用warnin语句实现该功能假如有个Android.mk文件的内容如下: [plain] view plaincopyprint?转载 2013-11-06 17:05:58 · 1911 阅读 · 0 评论 -
Android Jni知识点
Call[type]Method is only for private methods and constructors. (Calling Instance Methods) When you call a public method, you will get an AbstractMethodError.原创 2012-12-13 13:13:13 · 1588 阅读 · 0 评论 -
android和iOS平台的崩溃捕获和收集
通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常,以便开发人员发现和修改bug,对于提高软件质量有着极大的帮助。本文介绍了iOS和android平台下崩溃捕获和收集的原理及步骤,不过如果是个人开发应用或者没有特殊限制的话,就不用往下看了,直接把友盟sdk(一个统计分析sdk)加入到工程中就万事大吉了,其中的错误日志功能完全能够满足需求,而且不需要额外准备接收服务器。 但是如果你对其原理更感原创 2012-12-12 22:11:05 · 33849 阅读 · 25 评论 -
iOS和Android设备上最高效的xml解析库
好吧,其实真正最高效的xml使用方式是不使用xml,使用json或者是ini或者是自定义格式都要比xml快很多。如果使用xml格式的话,可以考虑对xml进行二进制压缩,即把xml当做内存数据直接读到结构体里面。(参考ogre cocosbuilder的实现)不过这样就需要xml与程序严格匹配。原始xml解析库的话,rapidxml是最快的。 我测试了cocs2d-x使用的libxml2(原创 2012-12-11 17:53:35 · 3285 阅读 · 0 评论 -
java.io.IOException: Unable to open sync connection!的解决方案
在学习Android的时候,经常是使用手机调试程序,很方便,后来在使用手机调试程序的时候出现了[2012-03-08 11:27:43 - Tea_marsListActivity] ------------------------------[2012-03-08 11:27:43 - Tea_marsListActivity] Android Launch![201转载 2012-04-01 00:57:31 · 5769 阅读 · 3 评论 -
android Run模式也会出现"Waiting for debugger"的解决方法
出现“waiting for debugger”窗口是在debug模式下运行出现的。但是,今天我在run模式下也出现了此窗口,并且一直如此。卸载程序重新运行也是如此。android真机在脱离电脑的情况下,会一直死在“waiting for debugger”的。 虽然,没找到问题原因,但我找到了解决方法。解决方法就是——开关手机一次!原创 2012-04-16 23:56:46 · 5458 阅读 · 1 评论 -
bin/sh -c:line 1 Syntax Error:unexpected end of file的解决方法
android ndk编译,之前一直很正常,但是后来不知道修改了什么,编译时会出现这样的错误。 bin/sh -c:line 1 Syntax Error:unexpected end of filemake: *** [ libs-armeabi-gdbserver] Error 1 之前以为是我的代码问题,但是尝试了ndk自带sample问题依旧。感觉是环境配置错误。经原创 2012-04-19 16:32:35 · 6275 阅读 · 0 评论 -
'ADB server didn't ACK'的解决方法
eclipse运行android应用,提示:ADB server didn't ACKThe connection to adb is down, and a severe error has occured使用:adb start-server提示:* daemon not running. starting it now *ADB server didn't ACK* fa原创 2012-06-21 00:00:36 · 1326 阅读 · 0 评论 -
将OpenGL代码移植成OpenGLES
首先是一些基础概念和经验分享:1、OpenGL是一个跨平台的图形渲染标准2、OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。OpenGL ES原创 2012-08-21 15:58:18 · 9091 阅读 · 0 评论 -
Android NDK R8C 重新编译jni问题
前几天google升级了Android ndk 到r8c,这个版本修复了上版本的错误,比较扯淡的错误。不过这次更新的童鞋可以发现,每次ndk-build会重新编译所有的,管你改没改过代码。总之building ,everything,操蛋啊。[cpp] view plaincopy打开NDK的根目录 找到 build/core转载 2012-12-05 16:17:41 · 4771 阅读 · 5 评论 -
android ndk提高编译速度
1、开启多核编译: ndk-build -j4 -j4就是指定4核编译,如果cpu是8核那可以指定-j8,通过指定这个,编译速度提高4倍原创 2012-12-05 16:32:19 · 5261 阅读 · 0 评论 -
Android.mk遍历子目录所有文件
define all-cpp-files-under$(patsubst ./%,%, \ $(shell cd $(LOCAL_PATH) ; \ find $(1) -name "*.cpp" -and -not -name ".*" -and -not -name "CCEditBoxImplWindow.cpp") \ )endefdefine all-s原创 2012-12-08 15:36:33 · 7189 阅读 · 1 评论 -
Android.mk高级写法
原本只是想记录一些常用的使用技巧,但是越写越得意(>_ 写这篇文章的起因当然是实际工程需要,在搭建一个网游的android客户端时遇到种种恶心的问题,比如文件过多导致"Argument list too long"的错误,又比如增加和删除文件时都需要维护好Android.mk配置,虽然可以通过写个脚本自动生成android.mk,但是终归不是很漂亮的解决方案。通过本文所提到的几个原创 2012-12-09 19:19:56 · 21364 阅读 · 7 评论 -
ndk链接时的诡异错误
起因是因为文件太多导致 Argument Too Long的错误,所以决定把工程拆分成多个子模块,然后使用call import-module导入子模块。但是修改完毕后,出现一大堆关于stl的链接错误。起初是以为stl使用出问题了,但是最终发现是静态库没有链接到,即:任意静态库或者cpp没有编译并链接,都有可能引发stl的链接错误。查了一个下午,也没有发现mk脚本哪里写错了,后来无意中原创 2012-12-10 18:55:58 · 1406 阅读 · 1 评论 -
android写文件到sd卡要有权限声明
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">uses-permission> 无论是用mkdir还是fopen,无论是unix系统库还是java代码,只要是对sd卡进行写操作就必须要声明权限,否则会失败。原创 2012-12-10 21:58:16 · 2050 阅读 · 0 评论 -
Unity动态字体文字破碎的解决方法(Dynamic Font Broken)
使用Unity的动态字体绘制文字的时候,打开两个ui界面的时候,后面的文字会显示破碎(完全乱掉)。我使用的ui插件是Daikon Forge,由于其label的更新机制问题,最终表现的结果可能比一个文本显示破碎更加糟糕。很可能文本控件会不停的刷新,要打开的新界面也显示不出来。 这个从根本上说,是由于Unity的Dynamic Font实现的不够智能。理论上NGUI也会有这样的问原创 2014-03-25 21:11:47 · 16991 阅读 · 2 评论