android
冒冒大人
这个作者很懒,什么都没留下…
展开
-
安卓下使用sqlite心得
查询数据库得到的Cursor,无论数据条数是否为0,只要Cursor不为空,都需要在代码中关闭Cursor,否则会造成内存泄漏。在DPS1080终端上测试,在连续查询680次左右而不进行关闭,将会无法继续对数据库进行修改、插入操作。原创 2014-07-21 12:38:14 · 701 阅读 · 0 评论 -
安卓获取可用内存的分析
通过阅读源码,得出在源码中计算可用内存的公式是:Free+Cached-SECONDARY_SERVER_MEM+mLastBackgroundProcessMemory其中SECONDARY_SERVER_MEM为系统最低保持的内存,低于这个内存,系统就要开始杀后台进程;mLastBackgroundProcessMemory为非系统进程且在后台运行的进程所占用的内存; 同时在获取Free,Ca原创 2015-03-17 22:17:29 · 670 阅读 · 0 评论 -
android图像处理,实现变暗效果
图像处理主要是图像的颜色矩阵和坐标矩阵进行处理,要实现变暗效果只需要对颜色矩阵中的RGB偏移减小即可,具体代码如下:int brightness = -80; //RGB偏移量,变暗为负数ColorMatrix matrix = new ColorMatrix();matrix.set(new float[]{1, 0, 0, 0, brightness, 0, 1, 0, 0, brightn原创 2015-03-17 22:10:18 · 2724 阅读 · 0 评论 -
EditTextPreference加密保存
EditTextPreference会将编辑对话框中的信息通过setText()方法直接保存在SharedPreferences文件中。当需要对输入的文本进行加密后保存到SharedPreferences文件中,并且对话框中能继续以明文显示时,可自定义EditTextPreference类并继承它,然后重载EditTextPreference的setText()、getText()以及onSetIn原创 2015-03-17 22:13:33 · 1531 阅读 · 0 评论 -
android:layout_gravity 和 android:gravity 的区别
gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思。android:layout_gravity 和 android:gravity 的区别从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。android:layout_gravity是相对与它的父元素说的,说明元素显示转载 2015-03-13 11:17:26 · 498 阅读 · 0 评论 -
Android下强制显示ActionBar的overflow按钮
由于手机硬件情况的不同,在没有物理Menu键的手机上,ActionBar的overflow按钮会有显示不出来的情况,可以通过反射的方式修改ViewConfiguration类中的sHasPermanentMenuKey静态变量的值永远为false,系统就是根据这个变量值来判断手机有没有物理Menu键,代码如下:@Override protected void onCreate(Bundl原创 2015-03-12 14:06:55 · 1260 阅读 · 0 评论 -
android根据区域高度分割文本问题
android字体显示涉及如下参数:1. 基准点是baseline;2. Ascent是baseline之上至字符最高处的距离;3. Descent是baseline之下至字符最低处的距离;4. Leading是上一行字符的descent到下一行的ascent之间的距离;5. Top指的是指的是最高字符到baseline的值,即ascent的最大值;6. 同上,bottom指的是最下字符到base原创 2015-03-12 14:09:19 · 664 阅读 · 0 评论 -
在安卓4.2.2的系统上,具有系统权限的应用不能读写SD卡
解决方法有两种:1.通过修改android系统的源码,开放SD卡的读写权限,详细的修改方法和说明,可以参考网上资料http://www.ifeegoo.com/android-debug-static-storage-paths-are-not-available-from-aid-system-error-analysis-and-solution.html2.在应用中把android:原创 2015-03-12 14:05:48 · 1940 阅读 · 0 评论 -
android多dex打包问题
将android-support-multidex.jar放到libs下然后编译,出现如下错误:Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.> java.util.zip.ZipException: duplicate entry: android/support/multidex/MultiDex.class原创 2015-04-13 15:35:38 · 5598 阅读 · 2 评论 -
EventBus 和Otto的区别
EventBus 和Otto的区别Otto is another event bus library for Android; actually it’s a fork of Guava’s EventBus. greenrobot’s EventBus and Otto share some basic semantics (register, post, unregister, …), but翻译 2015-03-17 14:56:17 · 1690 阅读 · 0 评论 -
使用ANR-WatchDog来检测ANR
使用开源项目ANR-WatchDog来检测ANR,下载链接为:https://github.com/SalomonBrys/ANR-WatchDogEclipse版本只需下载对应的jar包,在主线程调用new ANRWatchDog().start();该ANR-WatchDog实现原理:ANR-WatchDog创建一个监测线程,该线程不断往UI线程post一个任务,然后睡原创 2015-03-17 09:20:05 · 7799 阅读 · 0 评论 -
android:exported属性
一个应用程序启动另一个应用程序的组件或服务时会报Permission Denial的错误。通过查阅资料和逐步调试确认,android的四大组件均有android:exported属性,该属性是用于指示该组件能否被其它应用程序组件所调用。设置为true,则能够被调用,否则只有同一个应用程序的组件或带有相同用户Id的应用程序才能调用。该属性的默认值依赖于组件的包含的过滤器。没有过滤器则该属性默原创 2015-03-19 14:03:04 · 2743 阅读 · 0 评论 -
JAVA/ANDROID 将文件安全写入到磁盘
FileOutputStream out = new FileOutputStream(path);out.write(bytes);out.flush();out.getFD().sync(); // 确保在返回之前将数据写入到设备out.close();原创 2014-07-21 12:13:22 · 1266 阅读 · 0 评论 -
安卓下执行需要root权限的shell命令
需安卓系统已root String cmd = "busybox chmod 666 /dev/tty1";//要执行的shell命令 try { Process process = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(process.get原创 2014-09-15 09:23:28 · 3752 阅读 · 2 评论 -
Android Studio 1.0 无法启动的问题
Android Studio 1.0第一次启动的时候强制要求在线下载sdk(2.5G),但由于国内网络限制,无法下载,也就无法启动android studio了。不能选择本地已下载的sdk,也算是android studio 1.0的一个bug吧。解决方法是在解压Android Studio目录下的bin目录中,找到idea.properties这个文件,用文本编辑器打开,在末尾添加如下配置:原创 2014-12-05 14:36:38 · 1255 阅读 · 2 评论 -
android IntentService生命周期问题
如果需要在onHandleIntent之前执行一些操作,比如需要停止当前正在执行的任务,可在onStart做这个操作,需要注意的是必须在onStart函数的最后(执行完我的操作后)调用super.onStart(intent, startId),因为调用super.onStart后就会开始执行onHandleIntent。原创 2015-03-14 22:24:54 · 2465 阅读 · 0 评论 -
做web服务器提供apk下载,部分浏览器下载时后缀名为.html
服务器返回apk文件时增加header信息:Content-Type: application/vnd.android.package-archive//指定类型为apk安装包Content-Disposition: attachment;filename="xxx.apk"//指定文件名原创 2014-07-21 12:32:22 · 2696 阅读 · 0 评论 -
android不同机型上界面适配问题
android中长度有:dp(或者dip device independent pixels)一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp=1px。不同设备有不同的显示效果,这个和设备硬件有关,布局时尽量使用单位dp;sp(Scaled Pixels)主要用于字体显示,与刻度无关的一种像素,与dp类似,但是可以根据用户的字体大小首选项进行缩放;px:表示屏幕实际的象素。TextV原创 2015-03-14 22:20:26 · 2013 阅读 · 0 评论 -
android中键盘锁的问题
android中经常使用KeyguardLock来进行解锁,但是使用后需要调用reenableKeyguard()将锁释放,否则的话会导致其它的进程无法锁住屏幕,同样使用WakeLock唤醒屏幕后也需要使用release()释放,否则会导致系统无法进入休眠。原创 2015-03-14 22:24:44 · 1066 阅读 · 0 评论 -
未设置BufferSize导致FTP下载速度过慢的问题
开始下载前设置BufferSize即可解决:ftpClient.setBufferSize(1024*1024);查看commons-net的源码,可以发现如果未设置该参数,将会一个字节一个字节的读取数据。原创 2015-03-19 13:57:44 · 8505 阅读 · 0 评论 -
Android startActivityForResult requestCode限制
requestCode的值必须小于2^16,否则会报如下错误:java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode原创 2015-05-28 16:47:30 · 2731 阅读 · 0 评论