网上说的方法是修改/system/framework/framework.odex文件,找9a13040b,改为9a130408。 方法是没错,不过原理没说清楚。 其实问题是出在 framework/base/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java: public static SubmitPdugetSubmitPdu(St...
Android 的 monkey test 工具提供了 -f scriptfile 参数,可以指定 test 脚本,然而翻遍了 Android 的网站也没有找到这个脚本的文档,最终只在 monkey 的源码 MonkeySourceScript.java 中找到了一小段注释,里面给了一个不到 10 行例子: /** *monkeyeventqueue.Ittakes...
Android 默认没有 tcpdump,从网上下一个其它人 port 的版本就可以了,这个很容易 google 到,我就不再赘述了。也可以自己从 http://www.tcpdump.org 下载源码编译。NDK r5 之后直接用 toolchain 编译就行。 如果我们用 tcpdump 来调试 http 程序,可以这么写: tcpdum...
首先是几个基本概念: 1.屏幕尺寸Screen size 即显示屏幕的实际大小,按照屏幕的对角线进行测量。 为简单起见,Android把所有的屏幕大小分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extra large). 应用程序可以为这四种尺寸分别提供不同的...
一般的缓存策略是: 一级内存缓存、二级文件缓存(数据库也算作文件缓存)、三级网络数据 一、网络下载的缓存策略 关于网络下载文件(图片、音频、视频)的基本策略: 1.不要直接下载到目标文件,应使用temp文件作中转,以确保文件的正确性与完整性,流程如下: a)以网...
关于黑屏 默认的情况下,程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据等。 去除步骤 1./res/values/styles.xml 在 Theme 中,添加一个 android:windowBackgrounds 属性,设置需要的图片 2.在 AndroidManifest.xml 中设置T...
gzip是GNUzip的缩写,它是一个GNU自由软件的文件压缩程序。 HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。一般服务器中都安装有这个功能模块的,服务器端不需做改动。 当浏览器支持gzip 格式的时候, 服务器端会传输gzip格式的数据。 从Http 技术细节上...
刚才去 iOS开发者 逛了逛,看到有一篇文章《 客户端的gzip解压 》讲解了iOS上在HTTP请求中如何使用GZip,所以也有了冲动写一下Android的HTTP请求中GZip的使用。 闲话少说,还是先来看一下为什么要使用GZip吧,HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术...
proguard 原理 Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到。为了防止重要code 被泄露,我们往往需要混淆(Obfuscation code , 也就是把方法,字段,包和类这些java 元素的名称改成无意义的名称,...
解决方案:在Proguard.cfg方件中添加以下设定: 过滤R文件的混淆: -keep class **.R$* { *; } 过滤第三方包的混淆: -keep class packagename.** {*;}(其中packagename为第三方包的包名)...
问题: 安装系统SD卡里面的apk或者原有的程序更新版本的时候,会遇到升级安装成功之后的一个选择打开和完成,点击完成没有问题, 但是,如果点击了打开,然后按Home键,从应用程序列表里面选择应用程序图标进入,这个时候就会重新启动了一个应用程序,之后的操作就会出...
前言 四大应用程序组件中Activity是最常用的,也是必须掌握的一个组件。这里分几章梳理归纳一些实用的知识点与大家分享。 正文 一、配图及说明 Activity主要的三种状态: Running(运行):在屏幕前台(位于当前任务堆栈的顶部) Paused(暂停):失去焦点但仍然对用户...
Activity里面提供了一个managedQuery()方法,按照AndroidSDK里面的说明,the activity will manage its lifecycle for you.听起来很好,Activity可以替你管理Cursor的生命周期了,就不用记着去close()了,代码可以更简洁。 但是Activity是怎么去管理Cursor的生命周期的...
Android中Cursor关闭的问题 Cursor是Android查询数据后得到的一个管理数据集合的类,正常情况下,如果查询得到的数据量较小时不会有内存问题,而且虚拟机能够保证Cusor最终会被释放掉。 然而如果Cursor的数据量特表大,特别是如果里面有Blob信息时,应该保证Cursor占用...
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次 2、设置Activity的android:configChanges=orientation时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次 3、设置Activity的android:co...