上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页
摘要: 有时候在自己电脑上编译通过的 Java 代码,在别人那里却编译不通过,总是 @override 报错,通常的处理方式是将 @override 去掉,但不能从根本上解决问题。据说这是 JDK 的问题,@Override 是 JDK5 就已经有了,但有个小小的 Bug,就是不支持对接口的实现,认为这不是 Override 而 JDK6 修正了这个 Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上 @Override。同时要注意的是 @override 报错的情况不仅发生在通常的代码中,有时如果程序中使用了 AIDL 文件,系统在自动生成 Gen 目录下对应的接口文件时也会因为这个 Bug 阅读全文
posted @ 2013-03-28 23:22 sunzn 阅读(873) 评论(0) 推荐(0) 编辑
摘要: 线程的 4 个主要周期状态为创建线程、可执行(Runnable)、非可执行、终止(Dead)。当实例化一个 Thread 并执行 start() 之后,线程进入 Runnable 状态并开始执行 run() 方法。虽然线程看起来像是同时执行,但事实上在同一时间点上,还是只有一个线程在动作,只是线程之间切换的动作很快,所以看起来像是同时执行。线程尤其优先权,由 1 (Thread.MIN_PRIORITY)到 10 (Thread.MAX_PRIORITY),默认是 5 (Thread.NORM_PRIORITY)。可以使用 Thread 的 setPriority() 方法来设定线程的优先权, 阅读全文
posted @ 2013-03-26 21:05 sunzn 阅读(2264) 评论(0) 推荐(1) 编辑
摘要: 服务(Service)是一种在后台运行,没有界面的组件,由其他组件调用开始。Android中的服务和Windows中的服务是类似的东西,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。服务(Service)的实现1. 定义类继承Service,重写onCreate()、 onStart(Intentintent,intstartId)、onBind(Intentintent)、 onUnbind(Intentintent)、onDestroy()中需要的方法。2. 在清单文件的<application>节点下声明<service>。<applica 阅读全文
posted @ 2013-03-25 22:01 sunzn 阅读(2596) 评论(1) 推荐(2) 编辑
摘要: 在模拟器下加载体积较大的图片时可能会导致内存溢出,在 LogCat 中会看到 java.lang.OutOfMemoryError: bitmap size exceeds VM budget 的报错,但是同样的程序在真机上运行时候却不会发下因为内存溢出导致程序的崩溃。这是因为 Android 系统的手机在系统底层指定了堆内存的上限值,大部分手机的缺省值是 16MB,不过也有些高配置的机型是 24MB 的,所以我们的程序在申请内存空间时,为了确保能够成功申请到内存空间,应该保证当前已分配的内存加上当前需要分配的内存值的总大小不能超过当前堆的最大内存值,而且内存管理上将外部内存完全当成了当前堆的 阅读全文
posted @ 2013-03-18 21:00 sunzn 阅读(1587) 评论(0) 推荐(0) 编辑
摘要: 项目在代码混淆过程中如果引用了第三方 Jar 包,需要在混淆的脚本文件中加入第三方 Jar 包的声明。部分第三方 Jar 包虽然在混淆脚本中进行了声明,但是在混淆过程中经常会发现内部类或者引用文件找不到的现象,这种现象在 android-support-v4.jar 中更为常见,经过自己的不断调试得到了可以通过 android-support-v4.jar 代码混淆的配置信息,只需要将配置信息加入到 proguard.cfg 文件中即可。配置信息如下:-libraryjars ./libs/android-support-v4.jar-dontwarn android.support.v4.* 阅读全文
posted @ 2013-03-15 09:13 sunzn 阅读(4947) 评论(0) 推荐(1) 编辑
摘要: Fragments 诞生初衷Android 在 3.0 的版本中引入了 Fragments 的概念,根据词海的翻译可以译为:碎片、片段。其目的主要是为支持大屏幕设备上更加动态和灵活的 UI 设计,比如平板电脑。由于平板电脑比手机拥有更大的屏幕显示,所以平板电脑就会有足够的空间来进行组件的交互和整合。Fragments 的设计不需要你来管理视图显示的复杂变化,而是通过将 Activity 的布局分散到 Framents 中,就可以在运行时修改 Activity 的外观,并且将这些改变保存到由这个 Activity 管理的一个返回栈中。例如,在一个新闻应用程序中,两个并排显示在同一个 Activi 阅读全文
posted @ 2013-03-14 21:10 sunzn 阅读(1934) 评论(0) 推荐(0) 编辑
摘要: 一般有点开发经验的朋友都能实现这样的功能,只不过是效率上的问题。我们一般在面对这样的问题时,总会平铺直序的联想到,先生成一个数组,然后在一个循环中向数组中添加随机数字,在添加数字的过程中先查找一下数组中是否存在这个数字,如果不存在这个数字就直接添加到数组中;如果存在这个数字就不添 加。我们一般都是这样考虑问题的,这样考虑也能实现功能,我刚才也说了,只不过是效率上的问题。为了更好地理解这个题意,我们先来看下具体内容:生成一个1-100 的随机数组,但数组中的数字不能重复,即位置是随机的,但数组元素不能重复。在这里,没有给我们规定数组的长度,我们可以让它是1-100之间的任意长度。接下来让我们看一 阅读全文
posted @ 2013-03-14 20:49 sunzn 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 1. 对图片本身进行操作尽量不要使用 setImageBitmap、setImageResource、 BitmapFactory.decodeResource 来设置一张大图,因为这些方法在完成 decode 后,最终都是通过 Java 层的 createBitmap 来完成的,需要消耗更多内存。因此,改用先通过 BitmapFactory.decodeStream 方法,创建出一个 bitmap,再将其设为 ImageView 的 source,decodeStream 最大的秘密在于其直接调用 JNI>>nativeDecodeAsset() 来完成 decode,无需再使用 阅读全文
posted @ 2013-03-14 20:25 sunzn 阅读(5813) 评论(0) 推荐(1) 编辑
摘要: 当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句show variables like 'character%'; 来查看当前数据库的相关编码集。从上图中可以看到 MySQL 有六处使用了字符集,分别为:client 、connection、database、res 阅读全文
posted @ 2013-03-14 19:52 sunzn 阅读(154955) 评论(12) 推荐(20) 编辑
摘要: 什么是代码混淆Java 是一种跨平台的、解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中。由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名、方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成 Java 源代码。为了防止这种... 阅读全文
posted @ 2013-03-06 21:08 sunzn 阅读(32692) 评论(20) 推荐(6) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页