上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 47 下一页
摘要: Bugfree是一款优秀的bug管理和追踪工具,因此受到不少公司的青睐。但实际的工作中,我发现不少开发或是测试的同事有一些不好的使用习惯,使得我们对Bugfree的利用不够高效。我下面列出使用Bugfree的一些坏习惯,以此与各位测试同仁切磋使用这个工具的高效的方法。 对开发的同事而言,可能会有下面几条坏习惯。 坏习惯一:只采用默认的解决方案。 周围不少开发的同事,在解决掉一个bug的时候,往往只采用默认的解决方案:fixed。事实上,Bugfree提供了7种解决bug的方案供程序员选择。它们分别是:ByDesign、Duplicate、External、Fixed、NotRepro... 阅读全文
posted @ 2014-03-03 16:22 似水流云 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 可以比对apk签名的fingerprint。假定安装了JDK,如果想查HelloWorld.apk所使用的签名的fingerprint,可以这样做:1. 查找apk里的rsa文件(Windows)> jar tf HelloWorld.apk |findstr RSA(Linux)$ jar tf HelloWorld.apk |grep RSAMETA-INF/CERT.RSA2. 从apk中解压rsa文件jar xf HelloWorld.apk META-INF/CERT.RSA3. 获取签名的fingerprintskeytool -printcert -file META-IN 阅读全文
posted @ 2014-02-25 13:17 似水流云 阅读(1435) 评论(0) 推荐(0) 编辑
摘要: 签名的必要性 1、防止你已安装的应用被恶意的第三方覆盖或替换掉。 2、开发者的身份标识,签名可以防止抵赖等事件的发生。 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。另外由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名这时可以可以防止你已安装的应用被恶意的第三方覆盖或替换掉。因而APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本。签名方式签名有很多种方式,常见的有: 1、在Eclipse下通过插件获取数字证书,并签名你的应用。 打开Ecl... 阅读全文
posted @ 2014-02-24 18:07 似水流云 阅读(1902) 评论(0) 推荐(0) 编辑
摘要: android SDK提供了Service,用于类似Linix守护进程或者windows的服务。 Service有两种类型:本地服务(Local Service):用于应用程序内部远程服务(Remote Sercie):用于android系统内部的应用程序之间 前者用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。后者可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。编写不需和Activity交互的本地服务示例 本地服务编写比较简单。首先,要创建一个Se... 阅读全文
posted @ 2014-02-24 12:50 似水流云 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 1代码优化1.1缓存结果使用Android的稀疏数组(SpareArray):SparseArray、SpareBooleanArray、SparseIntArray对结果进行缓存.当然也可以使用也可是使用Java容器缓存.不过Android定义的SpareArray类,当键是整数时,比容器的HashMap效率高.因为HashMap使用的是java.lang.Integer对象,而SparseArray使用的基本类型int.因此使用HashMap会创建很多Integer对象,而使用SpareArray则可避免.当然HashMap也是有好处的,就是可以不依赖android.总之:使用缓存存储结果 阅读全文
posted @ 2014-02-21 17:11 似水流云 阅读(327) 评论(0) 推荐(0) 编辑
摘要: SparseArray是android里为这样的Hashmap而专门写的class,目的是提高效率,其核心是折半查找函数(binarySearch) private static int binarySearch(int[] a, int start, int len, int key) { int high = start + len, low = start - 1, guess; while (high - low > 1) { guess = (high + low) / 2; if (a[guess] ... 阅读全文
posted @ 2014-02-21 16:48 似水流云 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 一、SparseIntArray API SparseIntArrays map integers to integers. Unlike a normal array of integers, there can be gaps in the indices. It is intended to be more memory efficient than using a HashMap to map Integers to Integers, both because it avoids auto-boxing keys and values and its data structure . 阅读全文
posted @ 2014-02-21 16:36 似水流云 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 多数Android开发者都知道在Android中可以使用HashMap来映射一种对应关系,在java开发中HashMap也算是一种很重要的数据存储结构。然后很多人在Android开发中多数都会用HashMap来存储这种映射形式的数据。 其实,Android提供了一种更加适合Android开发的数据结构——SparseArray。初看之下,好像是一种数组,其实不然。数组的index是连续的。而SparseArray可以不连续,所以导致SparseArray就具有HashMap的一些特性,但是比HashMap的性能要好。既然性能要好很多,那是不是所有可以用HashMap的地方都可以用Spar... 阅读全文
posted @ 2014-02-21 16:27 似水流云 阅读(1350) 评论(0) 推荐(0) 编辑
摘要: 在Android 4.0设置中的“流量使用情况”允许长期统计每个App如何使用网络资源。从4.0.3开始,配合最新发布的DDMS r17(在ADT r17 插件中有集成),您可以实时的在DDMS中查看程序使用网络的情况。您还可以通过设置不同的Tag(标签)来区分不同类型的流量使用情况。流量统计情况在DDMS中通过图表显示,如下图:DDMS中的流量统计在代码中您可以给每个访问网络的线程设置一个标签,使用 TrafficStats.setThreadStatsTag()函数设置,还可以通过函数 TrafficStats.tagSocket() 和 untagSocket() 来设置Socket的标 阅读全文
posted @ 2014-01-22 14:49 似水流云 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程来说十分重要。Android在线程方面主要使用的是Java本身的Thread类,我们可以在Thread或Runnable接口中的run方法首句加入Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); //设置线程优先级为后台,这样当多个线程并发后很多无关紧要的线程分配的CPU时间将会减少,有利于主线程的处理,相关的Thread 阅读全文
posted @ 2014-01-22 14:29 似水流云 阅读(357) 评论(0) 推荐(0) 编辑
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 47 下一页