android 如何动态监测android 文件夹权限的文件数量变化

Android 内存储器监测工具 DDMS -& Heap_Android中如何破解游戏之修改金币数_bbossgroups-3.1 公布,支持组件方法异步调用__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
Android 内存储器监测工具 DDMS -& Heap
Android中如何破解游戏之修改金币数
bbossgroups-3.1 公布,支持组件方法异步调用
Android 内存储器监测工具 DDMS -& Heap
Android 内存监测工具 DDMS --& Heap
转载:http://blog.csdn.net/feng88724/article/details/6460918
---------------------------------------------------------------------------------------
用 Heap监测应用进程使用内存情况的步骤如下:1. 启动eclipse后,切换到DDMS透视图,并确认Devices视图、Heap视图都是打开的;2. 将手机通过USB链接至电脑,链接时需要确认手机是处于“USB调试”模式,而不是作为“Mass Storage”;3. 链接成功后,在DDMS的Devices视图中将会显示手机设备的序列号,以及设备中正在运行的部分进程信息;4. 点击选中想要监测的进程,比如system_process进程;5. 点击选中Devices视图界面中最上方一排图标中的“Update Heap”图标;6. 点击Heap视图中的“Cause GC”按钮;7. 此时在Heap视图中就会看到当前选中的进程的内存使用量的详细情况。说明:a) 点击“Cause GC”按钮相当于向虚拟机请求了一次gc操作;b) 当内存使用信息第一次显示以后,无须再不断的点击“Cause GC”,Heap视图界面会定时刷新,在对应用的不断的操作过程中就可以看到内存使用的变化;c) 内存使用信息的各项参数根据名称即可知道其意思,在此不再赘述。
如 何才能知道我们的程序是否有内存泄漏的可能性呢。这里需要注意一个值:Heap视图中部有一个Type叫做data object,即数据对象,也就是我们的程序中大量存在的类类型的对象。在data object一行中有一列是“Total Size”,其值就是当前进程中所有Java数据对象的内存总量,一般情况下,这个值的大小决定了是否会有内存泄漏。可以这样判断:a) 不断的操作当前应用,同时注意观察data object的Total Size值;b) 正常情况下Total Size值都会稳定在一个有限的范围内,也就是说由于程序中的的代码良好,没有造成对象不被垃圾回收的情况,所以说虽然我们不断的操作会不断的生成很多对 象,而在虚拟机不断的进行GC的过程中,这些对象都被回收了,内存占用量会会落到一个稳定的水平;c) 反之如果代码中存在没有释放对象引用的情况,则data object的Total Size值在每次GC后不会有明显的回落,随着操作次数的增多Total Size的值会越来越大,
直到到达一个上限后导致进程被kill掉。d) 此处已system_process进程为例,在我的测试环境中system_process进程所占用的内存的data object的Total Size正常情况下会稳定在2.2~2.8之间,而当其值超过3.55后进程就会被kill。
来自: http://apps./share/detail/
在DDMS里检查heap的使用情况
Dalvik Debug Monitor Server(DDMS)是主要的Android调试工具之一,也是ADT Eclipse plug-in 的一部分,独立的程序版本也可以在Android SDK的根目录下的tools/下面找到。关于DDMS更多的信息,请参考使用DDMS 。
我们来使用DDMS检查这个应用的heap使用情况。你可以使用下面的两种方法启动DDMS:
from Eclipse: click Window & Open Perspective & Other... & DDMS
or from the command line: run ddms (or ./ddms on Mac/Linux) in the tools/ directory
在左边的面板选择进程com.example.android.hcgallery,然后在 工具条上边点击Show heap updates按钮。这个时候切换到DDMS的VM Heap分页。它会显示每次gc后heap内存的一些基本数据。要看第一次gc后的数据内容,点击Cause GC按钮:
我们可以看到现在的值(Allocated列)是有一些超过8MB。现在滑动相片,这时看到 数据在增大。因为只有仅仅13个相片在程序里边,所以泄露的内存只有这么大。在某种程度上来说,这时最坏的一种内存泄露,因为我们没法得到 OutOfMemoryError来提醒我们说现在内存溢出了。
生成heap dump
我们现在使用heap dump来追踪这个问题。点击DDMS工具条上面的Dump HPROF文件按钮,选择文件存储位置,然后在运行hprof-conv。在这个例子里我们使用独立的MAT版本(版本1.0.1),从MAT站点下载 。
如果你使用ADT(它包含DDMS的插件)同时也在eclipse里面安装了MAT,点击“dump HPROF”按钮将会自动地做转换(用hprof-conv)同时会在eclipse里面打开转换后的hprof文件(它其实用MAT打开)。
用MAT分析heap dumps
启动MAT然后加载刚才我们生成的HPROF文件。MAT是一个强大的工具,讲述它所有的特性超出了本文的范围,所以我只想演示一种你可以用来检测 泄露的方法:直方图(Histogram)视图。它显示了一个可以排序的类实例的列表,内容包括:shallow heap(所有实例的内存使用总和),或者retained heap(所有类实例被分配的内存总和,里面也包括他们所有引用的对象)。
如果我们按照shallow heap排序,我们可以看到byte[]实例在顶端。自从Android3.0(Honeycomb),Bitmap的像素数据被存储在byte数组里 (之前是被存储在Dalvik的heap里),所以基于这个对象的大小来判断,不用说它一定是我们泄露掉的bitmap。
右击byte[]类然后选择List Objects & with incoming references。它会生成一个heap上的所有byte数组的列表,在列表里,我们可以按照Shallow Heap的使用情况来排序。
选择并展开一个比较大的对象,它将展示从根到这个对象的路径--就是一条保证对象有效的链条。注意看,这个就是我们的bitmap缓存!
MAT不会明确告诉我们这就是泄露,因为它也不知道这个东西是不是程序还需要的,只有程序员知道。在这个案例里面,缓存使用的大量的内存会影响到后面的应用程序,所以我们可以考虑限制缓存的大小。
使用MAT比较heap dumps
调试内存泄露时,有时候适时比较2个地方的heap状态是很有用的。这时你就需要生成2个单独的HPROF文件(不要忘了转换格式)。下面是一些关于如何在MAT里比较2个heap dumps的内容(有一点复杂):
第一个HPROF 文件(using File & Open Heap Dump ).
打开 Histogram view.
在Navigation History view里 (如果看不到就从Window & Navigation History找 ), 右击histogram 然后选择Add to Compare Basket .
打开第二个HPROF 文件然后重做步骤2和3.
切换到Compare Basket view, 然后点击Compare the Results (视图右上角的红色"!"图标)。
这本篇文章里面,我展示了Allocation Tracker和heap dumps是如何给你一种对程序内存使用的感性认识。我也展示了Eclipse Memory Analyzer(MAT)可以帮助追逐我们程序里面的内存泄露问题。MAT是一个强大的工具,我也仅仅触碰了一些皮毛,如果你想学习更多内容,我建议读 一些下面的文章:
Memory Analyzer News : Eclipse MAT project的官方博客。
Markus Kohler的Java Performance blog有很多有用的文章, 包括 Analysing the Memory Usage of Android Applications with the Eclipse Memory Analyzer and 10 Useful Tips for the Eclipse Memory Analyzer .
Android中如何破解游戏之修改金币数
Android中怎么破解游戏之修改金币数我们在玩游戏的时候总是会遇到一些东东需要进行购买的,但是我们可能又舍不得花钱,那么我们该怎么办呢?那就是用游戏外挂吧!我们这里说的是Android中的游戏,在网上搜索一下移动端游戏外挂,可能会找到一款叫做:八门神器.apk
其实这个软件我下载安装了,但是没有什么效果,不知道是不是我哪里设置的有问题,但是我们这个应用也是有很多限制的,他必须要让手机进行root(说实话,现在获取root是很方便的一件事,如果你想玩游戏,并且想得到更多的东西,手机root是必须的,但是这个可能也可能会失去很多)。
我就当上面的那个应用不可靠,所以我们采用第二种方案了,反编译游戏的apk,然后修改他的代码,在打成apk,在进行这个像操作的同时,我们需要先做一个准备工作,就是了解一下相关知识和一些辅助工具,我们知道Android中的应用程序是:xxx.apk,其实这个apk就是一个压缩文件,我们可以使用解压软件打开的。要想看到源码的话,可能需要一些辅助工具:dex2Jar(将dex文件转化成jar文件),jd-gui.exe(查看jar文件),ApkTool(反编译apk,可以得到他的smali文件,同时可以进行编译打包和签名),这些工具网上都是可以下载到的,但是我这里为了防止有些同学可能找不到正确的版本,导致操作失败,很不开心,所以我就将这些工具都放到csdn中了。
http://download.csdn.net/detail/jiangwei/7346527
下面我们首先来通过一个简单的Demo.apk来看一下反编译的流程:
代码很简单,新建一个Android工程,Activity代码如下:
package com.example.
import android.app.A
import android.os.B
import android.widget.TextV
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView txt = (TextView)findViewById(R.id.txt);
txt.setText("");
好吧,我们编译运行吧,代码很简单吧!记得布局文件中添加一个TextView
然后我们将工程中等的bin目录中的apk文件拷贝到出来开始反编译:
第一步:首先得到apk中的classes.dex文件
使用WinRAR软件打开apk,将其中的classes.dex文件解压出来
第二步:通过classes.dex文件得到classes.jar文件
我们从上面下载的工具中,解压Android反编译文件,进入目录中:
看到上面的标记文件夹,我们将上面得到的classes.dex文件拷贝到这个文件夹中,然后使用命令行将当前的路径切换到这个文件夹目录,然后执行命令:
d2j-dex2jar.bat classes.dex
执行完命令之后,我们在这个文件夹中会看到多出一个classes-dex2jar.jar文件,这个就是我们想要的jar文件
第三步:通过jd-gui.exe工具查看jar文件,查看源代码
我们可以看到我们的Activity类的源代码,当然我们这里没有进行扰码操作的,所以代码大体上都能看懂,只是会做一些代码的优化,这个关于代码的优化的过程,就是在Android编码编译成.dex文件的时候操作的
第四步:使用ApkTool工具进行反编译Apk文件
通过上面下载的工具中解压ApkTools.zip:
我们需要将我们上面编译之后的apk文件拷贝到这个目录中,并且需要将这个apk文件的名称修改成123.apk,然后运行APKTool.cmd:如下界面:
我们看到这里的每一步操作都说明的很清楚了,我们首先执行1,进行反编译,反编译成功之后我们会发现在文件目录中出现一个APK文件夹,在这个文件夹中就是反编译之后的内容了,我们找到MainActivity.smali文件
关于smali文件,不了解的同学们可以自己去google一下,网上有很多的例子,他其实就是一个能够被Android虚拟机读取命令进行执行的文件,然后我们打开这个smali文件:
我们其实看这些代码没什么难度的,如果你之前使用javap命令查看过java反编译的代码,这个和那个是差不多的,我们这里主要来看一下我们设置TextView的显示内容的代码,就是最后一个标记中,我们看到了我们设置的内容是:“10000”,所以我们只要修改这个值,现在我们修改这个值为:“10”,然后保存这个文件。
这里在补充一下上面的第一个标记中我们会看到有两个int类型的变量,但是我们会有一个疑问,我们代码里面没有用到int类型的变量呀?我们从变量下面的方法中可以看到,是setContentView和findViewById方法,其实我们知道Android中引用资源都是使用一个int类型的变量指定资源文件的。这里我们要记得怎么使用smali语法设置一个int变量的值(这个在后面会用到)
最后我们就可以使用上面ApkTools命令中的2进行编译,这时候在Apk目录中会多出一个build文件夹,这个是编译之后的文件夹,然后我们在使用4命令,进行签名包,执行完毕之后在build目录中有签名的apk了:
我们安装这个包测试一下,看到显示的是100。好吧,至此我们就成功的通过修改一个apk文件了。
好吧,上面的例子只是一个前奏,下面我们来看一下一个真实的案例吧:
哈皮妹-萝莉 v1.2.apk
关于这个apk,其中的内容有点不干净,正好赶到了最近政府在打压,所以好多市场中都下架了,其实你可以直接在百度中搜这个应用的,但是要注意的是一定要是v1.2的,不然可能会不一样,我担心有些同学可能找不到正确版本的apk了,所以给出下载链接:
http://download.csdn.net/detail/jiangwei/7346875
我们先来安装一下这个apk,看看效果吧!!一些男同学貌似很感兴趣呀!但是我们得先干正事
我们点击购物车图标,会看到有购买金币和钻石的界面,系统默认是金币为100,钻石为0,我们将金币改成10000,钻石改成10,这样我们就可以看到更多的东东了。
我们按照上面例子的步骤来进行操作,我们看源码会看到一个类:
package com.qxshikong.mm.lolita.c;
public final class c
public final int a()
return this.a;
public final void a(int paramInt)
this.a = paramI
public final int b()
return this.b;
public final void b(int paramInt)
this.b = paramI
我们会看到这个类,关于如何找到这个类的,不要问我,我是找了很多次才找到的,这个没有技巧可言的,我们知道这个代码应该就是一个JavaBean,提供两个属性:一个是金币数,一个是钻石数,那么下面我们反编译这个apk,查看他的smali文件:
这里修改的方法就是参照我们前面说到的例子中怎么设置一个int类型的值
我们一定要通过上面的源码文件的目录找到指定的smali文件:
我们修改了smali文件之后保存,然后进行编译打包,之后安装打好包之后的apk(这个步骤在前面的案例中已经说过了),我们安装签名的apk,但是我们可能会遇到一个问题:
会涉及到签名不一样,但是包名一样的问题(和没有手机中之前的apk包冲突),这个很简单,卸载后安装即可,运行之后我们到购买界面查看:
擦,我们发现金币和钻石多了好多呀,那么我们就可以疯狂的操作吧!!!
但是这里我们会发现一个问题,这里的数量和我们设置的不一样,而且我们发现是我们设置的65536倍,是2的16次方,这个问题,我以为是上面smali文件中修改成十六进制的问题,所以我又改成十进制的,结果还是一样,没办法了,不就结了,这个问题不是我们这篇文章的主题,我们只要看到了金币数和钻石数确实被修改了。好开心呀!!
本文的内容只在于讲解如何破解Android中apk的原理和步骤,当然并不是所有的游戏都能破解的,这也是我这里为什么要选择这款应用的这个版本,这都是有原因的,我曾经用这种方法去破解不同版本的,比如是1.8版本的,结果失败了!因为这里面有一个很大的麻烦就是怎么找到指定的smali文件,这个其实想找到真是超级难的,所以你们也不要多想去破解所以的游戏,当然你们也是可以尝试的,如果可以的话,记得通知我,我也来看看,哈哈!!
bbossgroups-3.1 公布,支持组件方法异步调用
bbossgroups-3.1 发布,支持组件方法异步调用
bbossgroups-3.1 发布,新增组件异步调用功能,对mvc框架功能做了进一步的改进,丰富了数据绑定机制,标签库修复了jquery ajax提交和装载页面中文乱码问题,整个框架相比以前的版本性能更好,更加简单易用。为了更好地帮助开发人员的使用,提供了以下资源: bbossgroups源码工程(http://sourceforge.net/projects/bboss/files/bbossgroups-3.1/bbossgroups-3.1-src.zip/download) mvc框架的demo war包(http://sourceforge.net/projects/bboss/files/bbossgroups-3.1/mvcdemo-war.zip/download) 简单mvc eclipse开发工程,开箱即用(http://sourceforge.net/projects/bboss/files/bbossgroups-3.1/mvcdemo-eclipse.zip/download) bbossgroups 培训ppt(http://sourceforge.net/projects/bboss/files/bbossgroups-3.1/bbossgroups%203.1%20in%20action.zip/download)bbossgroups 包含以下子工程:1.bboss-aop, an aop framework.(ioc ,rpc[jms,mina,jgroups,cxf webservice,rmi,netty,rest,组播,多播],
bean component,cxf webservice component framworkset,jms components frameworkset,plugin security components and so on). 支持组件方法异步调用。2.bboss-persistent, a persistent framework(). a.灵活的事务管理(声明式事务管理,可编程事务管理,java注解事务管理,jdbctemplate事务管理,五种经典的事务类型,支持事务嵌套,支持多数据库分布式事务) b.灵活的访问数据库的接口(普通sql操作,预编译sql操作,普通/预编译批处理操作,存储过程,函数) c.一套经典的数据库操作标签库(增删改查,普通sql操作,预编译sql操作,普通/预编译批处理操作) d.经典的多数据库连接池配置管理和使用方法(所有的数据库操作接口可以直接指定连接池的名称,方便地实现对不同数据库的操作)3.bboss-taglib, a web layer taglib framework(list tag,pageine list tag,detail tag ,logic tag,tree tag,tabpane tag,dbutil tag).4.bboss-event, an event framework(local event,remote distribute event framework base aop rpc framework).5.bboss-util, an utility framework.6.antbuildall, ant build project that build up projects.可以运行antbuildall下的run.bat命令编译所有的子项目,并且更新相应工程的依赖jars。7.apache-ant-1.7.1 所有工程构建依赖的ant环境,bbossgroups的构建无需依赖外部ant环境,每个子工程下都有相应的执行ant的bat命令文件,直接运行这些bat就可以构建相应的
工程,构建的目标文件存放在相应工程的distrib目录下面。
bbossaop\run.bat
bbossevent\run.bat
bboss-mvc\build.bat
bboss-persistent\run.bat
bboss-taglib\run.bat
bboss-util\run.bat8.bboss-mvc,bboss mvc 框架隶属于开源项目bbossgroups,是基于bboss aop框架开发的轻量级mvc框架,提供以下功能:单方法action,多方法action,注解action 支持restful
提供数据绑定功能提供国际化功能提供自定义主题功能提供一套界面展示标签提供数据自动校验功能,
bboss-mvc提供多文件上传功能的支持,分页控制器的支持。能够非常方便地和jquery,exjs等流行的技术框架使用。9.文档 目录包含mvc框架开发文档、framework 开发文档和bboss aop框架的技术使用文档、ppt培训文档等等bboss group project blog:http://blog.csdn.net/yin_bphttp://yin-/bboss group project sourceforge site url:http://sourceforge.net/projects/bboss/files/release version : bbossgroups-3.1release date: -----------------------------------------------------------****release futures: 3.1 版本新增组件异步调用功能,对mvc框架功能做了进一步的改进,丰富了数据绑定类型,标签库修复了jquery ajax提交和装载页面中文乱码问题,整个框架相比以前的版本性能更好,更加简单易用。为了更好地帮助开发人员的使用,提供了以下资源: mvc框架的demo war包 简单mvc eclipse开发工程,开箱即用------------------o mvc框架绑定参数注解指定日期转换格式,以便保证按原始数据格式将参数转换为正确的日期o mvc框架可以将日期类型(java.util.Date/java.sql.Date/java.sql.Timestamp)转换为long类型数据,也可以将long数据转换为日期类型(java.util.Date/java.sql.Date/java.sql.Timestamp),也可以进行long数组和日期类型(java.util.Date/java.sql.Date/java.sql.Timestamp)数组的相互转换o 修复mvc框架控制器组件解析异常: java.lang.IllegalArgumentException: Class must not be null at org.frameworkset.util.Assert.notNull(Assert.java:112) at org.frameworkset.util.annotations.AnnotationUtils.findAnnotation(AnnotationUtils.java:129) at org.frameworkset.web.servlet.handler.HandlerUtils.determineUrlsForHandler(HandlerUtils.java:1965)------------------o 持久层框架中修复获取数字类型的值时,一旦rs中返回null时,没有正确获取数字缺省值的问题ValueExchange.convert方法o 标签库中修改字符串过滤器,解决jquery或者ajax数据请求时,分页查询的中文乱码问题,改进字符串过滤器的性能------------------o 改进webservice服务装载功能,可以从mvc和所有的applicationcontext中配置和装载webservice服务:Mvc框架的ws服务无需特殊处理普通的applicationcontext容器中的ws服务对应的模块配置文件需要配置在org/frameworkset/spi/ws/webserivce-modules.xml文件中------------------o 增加组件异步调用机制,使用方法参考测试用例:/bbossaop/test/org/frameworkset/spi/asyn/AsynbeanTest.java可以通过Async注解标注组件中需要异步执行的方法即可,可以指定超时时间,是否需要返回结果,是否需要回调处理返回结果------------------o 完善Pro对象对ProList,ProSet,ProMap,ProArray的处理机制o ApplicationContext组件新增一组获取ProArray对象的接口public ProArray getArrayProperty(String name) ;public ProArray getProArrayProperty(String name, ProArray defaultValue) ;o 新增convert标签,支持字典数据值向名称的转换其中的datas为一个map属性映射值,name对应于key,convert标签通过name获取到对应的属性值然后显示到页面上,如果对应的值没有那么输出defaultValue对应的值,如果没有设置defaultValue那么直接输出name。&pg:convert convertData="datas" colName="name" defaultValue=""/&pager-taglib.tldframeworkset.jar------------------o 解决获取空的ProList时导致aop框架启动失败的问题o 完善事务泄露检测机制,在manager-provider.xml中增加检测页面地址类型配置:&!-- 数据库事务泄露检测url类型范围配置 --& &property name="transaction.leakcheck.files" &
&array componentType="String"&
&property value=".jsp"/&
&property value=".do"/&
&property value=".page"/&
&property value=".action"/&
&property value=".ajax"/&
&/array& &/property&------------------o 完善带返回值的事务管理模板组件支持泛型类型的返回public void stringarraytoList(final List&ListBean& beans) throws Throwable {
List&ListBean& ret = TemplateDBUtil.executeTemplate(
new JDBCValueTemplate&List&ListBean&&(){
public List&ListBean&
execute() throws Exception {
String sql = "INSERT INTO LISTBEAN (" + "ID," + "FIELDNAME,"
+ "FIELDLABLE," + "FIELDTYPE," + "SORTORDER,"
+ " ISPRIMARYKEY," + "REQUIRED," + "FIELDLENGTH,"
+ "ISVALIDATED" + ")" + "VALUES"
+ "(#[id],#[fieldName],#[fieldLable],#[fieldType],#[sortorder]"
+ ",#[isprimaryKey],#[required],#[fieldLength],#[isvalidated])";
SQLExecutor.delete("delete from LISTBEAN");
SQLExecutor.insertBeans(sql, beans);
); }o 解决主页面通过ajax方式加载多个分页页面时,跳转功能不能正常使用的问题,以及提示信息中文乱码问题------------------o mvc中传递给分页标签的导航路径修改为带上下文的绝对地址,以免在使用jquery模式局部分页时,主页面的相对地址和分页对应的页面的相对路径不一致时,不能正确地进行分页导航------------------o 控制器方法中增加Map类型参数绑定机制,可以将request中的参数转换为Map对象,当参数是数组时存入数组值,否则存入单个值------------------o 完善ConfigSQLExecutor和SQLExecutor组件中所有和bean对象相关的接口, Object bean参数可以是普通的的值对象,也可以是一个SQLParams对象,也可以是一个Map对象 使用方法参考测试用例: /bboss-persistent/test/com/frameworkset/sqlexecutor/ConfigSQLExecutorTest.java------------------o 新增array元素,通过该元素可以实现各种类型数组数据的注入功能------------------o
修改DaemonThread进程,支持从外部指定刷新文件资源的时间间隔。o 完善ApplicationContext组件的生命周期管理机制o ApplicationContext组件增加获取long值属性的api------------------o 新增array元素,通过该元素可以实现各种类型数组数据的注入功能------------------o 增加根据变量名称从配置文件中获取sql语句的来操作数据库组件,对应sql配置文件提供定时刷新机制
如果检测到sql文件被修改,就从新加载文件(前提是开启刷新机制)mon.poolman.ConfigSQLExecutor具体的使用方法为:ConfigSQLExecutor executor = new ConfigSQLExecutor("com/frameworkset/sqlexecutor/sqlfile.xml");Map dbBeans
executor.queryObject(HashMap.class, "sqltest");String result = executor.queryFieldBean("sqltemplate", bean);配置文件:&?xml version="1.0" encoding='gb2312'?&&properties&&description&&![CDATA[ sql配置文件 可以通过名称属性name配置默认sql,特定数据库的sql通过在 名称后面加数据库类型后缀来区分,例如: sqltest sqltest-oracle sqltest-derby sqltest-mysql 等等,本配置实例就演示了具体配置方法 ]]&&/description& &property name="sqltest"&&![CDATA[select * from LISTBEAN]]& &/property&
&property name="sqltest-oracle"&&![CDATA[select * from LISTBEAN]]& &/property& &property name="sqltemplate"&&![CDATA[select FIELDNAME from LISTBEAN where FIELDNAME=#[fieldName]]]& &/property& &property name="sqltemplate-oracle"&&![CDATA[select FIELDNAME from LISTBEAN where FIELDNAME=#[fieldName]
]]& &/property&
&property name="dynamicsqltemplate"&&![CDATA[select *
from CIM_ETL_REPOSITORY
#if($HOST_ID && !$HOST_ID.equals("")) and HOST_ID = #[HOST_ID] #end
and PLUGIN_ID = #[PLUGIN_ID] and CATEGORY_ID = #[CATEGORY_ID] and APP = #[APP]]]&
&/property&&/properties&刷新机制的配置方法:在manager-provider.xml文件中添加以下配置项即可:&property name="sqlfile.refresh_interval" value="10000"/&当value大于0时就开启sqlfile文件的更新检测机制,每隔value指定的时间间隔就检测一次,有更新就重新加载,否则不重新加载o 完善ApplicationContext组件的生命周期管理机制o ApplicationContext组件增加获取long值属性的apio 完善mvc框架配置文件导入方式可以用,号分隔导入子目录下的配置文件,例如:&servlet& &servlet-name&mvcdispather&/servlet-name& &servlet-class&org.frameworkset.web.servlet.DispatchServlet&/servlet-class& &init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&/WEB-INF/bboss-*.xml,
/WEB-INF/conf/bboss-*.xml&/param-value& &/init-param&。。。。。。&/servlet&------------------o 控制器方法增加枚举类型,枚举数组类型参数的绑定功能------------------o 增加一组查询单个字段的泛型接口,使用方法如下:
String sql = "select REQUIRED from LISTBEAN ";
SQLExecutor.queryTField(int.class, sql);
SQLExecutor.queryTField(long.class, "select seq_name.nextval from LISTBEAN ");
String sql = "select FIELDLABLE from LISTBEAN ";
String id=
SQLExecutor.queryTField(String.class, sql);
System.out.println(id);o 3.0api增加返回List&HashMap&结果集的查询接口支持,使用方法如下(以预编译语句为例):@Test public void queryListMap() throws SQLException {
String sql = "select * from LISTBEAN name=?";
List&HashMap& dbBeans
SQLExecutor.queryListWithDBName(HashMap.class, "mysql", sql,"ttt");
System.out.println(dbBeans); } public void queryListMapWithbeanCondition() throws SQLException {
String sql = "select * from LISTBEAN name=#[name]";
ListBean beanobject = new ListBean();
beanobject.setName("duoduo");
List&HashMap& dbBeans
SQLExecutor.queryListWithDBName(HashMap.class, "mysql", sql,beanobject);
System.out.println(dbBeans); } @Test public void queryMap() throws SQLException {
String sql = "select * from LISTBEAN ";
Map dbBeans
SQLExecutor.queryObject(HashMap.class, sql);
System.out.println(dbBeans); } ------------------o 跳转路径可以通过path:元素直接指定,而无需注入具体使用方法,参考demoWebRoot/WEB-INF/bboss-path.xml------------------o 3.0api中完善对java.util.Date类型对象属性数据的处理o 修复mvc实现分页功能时,通过handleMapping注解指定的url路径无法进行分页的bug,修改的程序如下:o ioc中属性注入时,如果属性没有定义set方法,会抛出异常,导致类注入初始化失败,修改为提示而不是失败方式------------------o 改进右键菜单功能,提升右键菜单性能,涉及的功能有:使用右键菜单的树标签和使用右键菜单的列表、分页标签,以及所有其他相关的页面o 修复jms不能发送长度为0的jms消息bug/bbossaop/src-jms/org/frameworkset/mq/RequestDispatcher.java------------------o 将组件管理模式默认为设置为单例模式------------------o 扩展list,map,set元素类型定义,添加componentType属性,用来标识容器中存放的对象类型,componentType的取值范围如下:bean:标识容器元素对象类型是组件对象类型String:标识容器元素对象类型是String对象该属性可以用来方便将组件类型的list和字符串类型的list注入到其他组件中。相应地在ProList、ProMap、ProSet对象上增加了以下方法:ProList: public List getComponentList()ProMap:public Map getComponentMap()ProSet:public Set getComponentSet()使用案例如下:&property name="/index.htm,/detail.htm"
f:demo_sites="attr:demo_sites"
class="org.frameworkset.web.demo.SiteDemoController" singlable="true"/&
&property name="demo_sites"&
&list componentType="bean"&
&property f:name="listbean"
f:cnname="集合po对象绑定实例"
class="org.frameworkset.web.demo.SiteDemoBean"&
&property name="controllerClass" value="D:/workspace/bbossgroup-2.0-RC2-mvc/bboss-mvc/test/org/frameworkset/spi/mvc/ListBeanBindController.java"/&
&property name="configFile" value="D:/workspace/bbossgroup-2.0-RC2-mvc/bboss-mvc/WebRoot/WEB-INF/bboss-listbean.xml"/&
&property name="visturl"&
&list componentType="String"&
&property value="/databind/showstringarraytoList.htm"/&
&property value="/databind/showlist.htm"/&
&/property&
&property name="formlist"&
componentType="bean"&
&property f:formPath="D:/workspace/bbossgroup-2.0-RC2-mvc/bboss-mvc/WebRoot/jsp/databind/table.jsp"
f:charset="UTF-8"
class="org.frameworkset.web.demo.FormUrl"&
&property name="description"&&![CDATA[
表单table.jsp, 对应于/databind/showlist.htm跳转页面
]]&&/property&
&/property&
&property f:formPath="D:/workspace/bbossgroup-2.0-RC2-mvc/bboss-mvc/WebRoot/jsp/databind/stringarraytoList.jsp"
class="org.frameworkset.web.demo.FormUrl"&
&property name="description"&&![CDATA[
表单stringarraytoList.jsp, 对应于/databind/showstringarraytoList.htm跳转页面
]]&&/property&
&/property&
&property f:formPath="D:/workspace/bbossgroup-2.0-RC2-mvc/bboss-mvc/WebRoot/jsp/databind/tableinfo.jsp"
class="org.frameworkset.web.demo.FormUrl"&
&property name="description"&&![CDATA[
表单/bboss-mvc/WebRoot/jsp/databind/tableinfo.jsp, 对应于/databind/showbean.htm跳转页面
]]&&/property&
&/property&
&/property&
&property name="description"&&![CDATA[
集合po对象绑定实例 字符串数组转List数据绑定实例
]]&&/property&
&/property&
&/list& &/property& 类如下:SiteDemoController public class SiteDemoController { private List&SiteDemoBean& demo_ public String index(ModelMap model) {
model.addAttribute("demobeans", demo_sites);
return "index"; } public String detail(ModelMap model,@RequestParam(name="demoname") String demoname) {
SiteDemoBean bean =
for(int i = 0; i & demo_sites.size(); i ++)
SiteDemoBean bean_ = demo_sites.get(i);
if(demoname.equals(bean_.getName()))
bean = bean_;
model.addAttribute("demobean", bean);
return "seconddetail"; } /**
* @return the demo_sites
*/ public List&SiteDemoBean& getDemo_sites() {
return demo_ } /**
* @param demoSites the demo_sites to set
*/ public void setDemo_sites(List&SiteDemoBean& demoSites) {
demo_sites = demoS }}------------------o 3.0api中完善对java.util.Date类型对象属性数据的处理------------------o 修复树标签复选框点击事件firefox兼容性问题o 修复树标签默认选中节点上面设置点击事件时Boolean值向String转换异常问题------------------o 增加一个根据参数启动数据源的api,可以控制数据源是连接池数据源还是非连接池数据源DBUtil中增加以下静态方法:public static void startPool(String poolname,String driver,String jdbcurl,String username,String password,
String readOnly,
String txIsolationLevel,
String validationQuery,
String jndiName,
int initialConnections,
int minimumSize,
int maximumSize,
boolean usepool,
String externaljndiName
o 数据源配置文件中增加usepool元素 ,可以控制数据源是连接池数据源还是非连接池数据源&?xml version="1.0" encoding="gb2312"?&&poolman& &datasource&
&dbname&bspf&/dbname&
&loadmetadata&false&/loadmetadata&
&jndiName&jdbc/mysql-ds&/jndiName&
&driver&oracle.jdbc.driver.OracleDriver&/driver&
&usepool&false&/usepool&
&url&jdbc:oracle:thin:@//172.16.25.139:1521/dtjf&/url&
&username&dtjf&/username&
&password&dtjf&/password&
&txIsolationLevel&READ_COMMITTED&/txIsolationLevel&
&logAbandoned&true&/logAbandoned&
&readOnly&false&/readOnly&
&keygenerate&composite&/keygenerate&
&autoprimarykey&false&/autoprimarykey&
&showsql&false&/showsql& &/datasource&&/poolman&
o 调整非连接池数据源的监控数据采集和相关属性展示接口------------------o 修改odbc 驱动下使用o/r mapping查询,大字段处理异常问题o 扩展SQLExecutor组件增加所有查询List结果集方法对泛型的支持o 修复double类型数据向int类型转换的问题,新增单个值转换为数组的功能,支持数字类型数组之间的相互转换各子项目新增功能和修改功能清单请参考每个项目中的readme.txt文件。
如果您想提高自己的技术水平,欢迎加入本站官方1号QQ群:&&,&&2号QQ群:,在群里结识技术精英和交流技术^_^
本站联系邮箱:

我要回帖

更多关于 android 文件夹权限 的文章

 

随机推荐