02 2013 档案
摘要:本文介绍Android中的5种数据存储方式。数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是:1使用SharedPreferences存储数据2文件存储数据3SQLite数据库存储数据4使用ContentProvider存储数据5网络存储数据下面将为大家一一详细介绍。第一种:使用SharedPreferences存储数据SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferen
阅读全文
摘要:原文地址http://iandroiddev.com/post/2012-04-03/143373331.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面第一,控制资源的使用,通过线程同步来控制资源的并发访问第二,控制实例的产生,以达到节约资源的目的第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信2.尽量避免随意使用静态变量要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如public class A{ stat
阅读全文
摘要:1、软件长期运营存在什么问题 一个大规模的客户端软件的生命周期中,我们可以把它分为两个比较粗的时期。一个是前期的搭建软件的时期,即从无到有的时期;第二个是搭建完成之后,进入的一个稳定的运营时期。第二个时期才是最关键的,在这个时期我们会持续的迭加需求,持续的优化功能,而且第二个时期也是代码在慢慢变质的时期。 在这个时期,你可能会发现:我们的软件慢慢出现模块耦合严重,牵一发而动全身;每个版本都会涌现出老功能的BUG,你没动过的模块也会出BUG;或者改了一个小问题了,带出来很多其他问题;缺乏扩展性,往老模块加新功能非常痛苦;程序的崩溃率越来越高;新员工接手老模块经常不能理解原来的设计思想而改坏;..
阅读全文
摘要:【编者按】本文作者@刘津legene随着移动互联网的快速发展,很多Web产品经理、设计师转而投身至移动应用领域。看起来非常相关的工作,却可能给他们带来了不小的困扰。很多刚刚接触移动应用的产品经理、设计师依然习惯用Web的思维去做App。张小龙在谈微信时就曾经说过:绝不考虑Web形态,一切考虑都基于App。那么,移动应用和Web相比,区别到底在哪里呢?以下是作者以自己在工作中通过血的教训总结出的几点内容,在此与大家共享:1、单一且专注创新工场曾推出一款应用叫“布丁爱生活”,里面包含电影、美食等内容,但是推出后一直反响平平。后来这些内容被拆分成不同的应用,反而取得了不俗的成绩。这是为什么呢?我认为
阅读全文
摘要:SSH为Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架。StrutsStructs是一个基于Sun J2EE平台的MVC框架爱,主要采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet,JSP,自定义变迁和信息资源(Message Resources)整合到一个统一的框架中,开发人员利用其进行开发是不用在自己编码实现全套MVC模式,极大地节省了时间,所以说Struts是一个非常不错的应用框架。官方地址:http://struts
阅读全文
摘要:finalize()是由JVM自动调用的,你可以用System.gc(),但JVM不一定会立刻执行,JVM感觉内存空间有限时,才会开始执行finalize(),至于新的对象创建个数和被收集个数不同是因为收集的对象只和JVM的垃圾收集策略有关。1.构造函数要点:构建器(Constructor)属于一种较特殊的方法类型,因为它没有返回值.这与 void返回值存在着明显的区别。对于void返回值,尽管方法本身不会自动返回什么,但仍然可以让它返回另一些东西。构建器则不同,它不仅什么也不会自动返回,而且根本不能有任何选择.若创建一个没有构件器的类,则编译器会自动创建一个默认构件器.2.finalize(
阅读全文
摘要:原文地址:http://yang7551735.iteye.com/blog/465785Java程序的多个部分(方法,变量,对象)驻留在内存中以下两个位置:即堆和栈,现在我们只关心3类事物:实例变量,局部变量和对象:实例变量和对象驻留在堆上局部变量驻留在栈上 让我们查看一个java程序,看看他的各部分如何创建并且映射到栈和堆中:Java代码publicclassDog{Collarc;Stringname;//1.main()方法位于栈上publicstaticvoidmain(String[]args){//2.在栈上创建引用变量d,但Dog对象尚未存在Dogd;//3.创建新的Dog对象
阅读全文
摘要:上一篇介绍了apk反编译的步骤,现在来研究下代码混淆,因为第三方人员完全可以通过解压APK文件并从中获取项目源码,所以对APK文件的保护显得至关重要。代码混淆亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为,代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。一、工具:Proguard\android-sdks\tools\proguard即可找到该工具,可以再docs里面找到相关手册二、 配置脚本在2.3以上的项目里可以看到proguard-project.txt文件,对于2.3以下的版本,可以去2.3以上版本的项目中复制一份。(我看到有的项目
阅读全文
摘要:有时候希望学习别人的源代码,可以试一下反编译。下面介绍反编译apk的方法一、工具dex2jar-0.0.9.13.zip或者官方下载地址dex2jar内含apk反编译成java源码工具,可以把apk中的classes.dex转化成jar文件 jd-gui-0.3.5.windows.zip 官方下载地址 jdgui可以直接查看反编译后的jar包源代码二、生成jar将apk文件后缀改为zip并解压(不用改后缀也可以解压),得到其中的classes.dex,它就是java文件编译后再通过dx工具打包而成的。将classes.dex复制dex2jar.bat所在的目录下在命令行定位到dex2jar.
阅读全文
浙公网安备 33010602011771号