07 2011 档案

摘要:string_ids_size和string_ids_off字段 这两个字段主要用来访问字符串资源,由于源程序里编译后,程序所需要使用到的字符串都保存在这个数据段里,以便解释执行这个dex文件代码时使用。比如调用库函数里的类名称描述,输出显示给用户查看的字符串。string_ids_size说明了有多少个字符串,而string_ids_off说明字符串数据区的开始位置。那么字符串数据区里的内容是怎么样排列的呢?下面就来分析这个字符串结构:/** Direct-mapped "string_id_item".*/typedef struct DexStringId { u4 阅读全文
posted @ 2011-07-31 08:07 ajuanabc 阅读(236) 评论(0) 推荐(0) 编辑
摘要:--======================-- 只读表空间的备份与恢复--======================一、只读表空间的特性 使用只读表空间避免对静态数据的频繁备份 当使用alter tablespace tbs read only时,数据文件会执行检查点进程(将所有脏缓冲区的内容写至磁盘), 当前的SCN号会被标注,同时存储了SCN的数据文件头部被冻结.控制文件内也会记录该数据文件的冻结信息。 可以清除只读表空间的对象 二、只读表空间的备份 一般情况下,只读表空间只需要进行一次备份,即当表空间状态发生改变时应立即进行备份 可以使用OS系统cp命令来备份或RMAN进行备份. 阅读全文
posted @ 2011-07-30 13:40 ajuanabc 阅读(383) 评论(0) 推荐(0) 编辑
摘要:--*************************************-- Oracle 常用性能视图一览表(10g)--*************************************Advisors Information related to cache advisorsv$pga_target_advice v$shared_pool_advice v$pga_target_advice_histogram v$java_pool_advice v$mttr_target_a... 阅读全文
posted @ 2011-07-28 21:38 ajuanabc 阅读(476) 评论(0) 推荐(0) 编辑
摘要:--=================================-- 使用RMAN实现异机备份恢复(WIN平台)--================================= 在有些情况下,如数据库服务器处于磁盘空间的压力或成本控制需要将数据文件备份到异机,使用RMAN可以完成该工作。基于Windows平台所需完成的配置相对简单,仅仅是添加账户与使用新增的帐户来启动数据库服务以及设置共享路径。 下面给出具体描述。 一、配置数据库服务器与备份目的主机 1. 帐户配置(假定有主机A,B 且A为数据库服务器,B为备份目的主机,且能互相ping通) 如果主机A与主机B使用的Admi... 阅读全文
posted @ 2011-07-27 20:52 ajuanabc 阅读(884) 评论(0) 推荐(0) 编辑
摘要:--====================-- 收缩表段(shrink space)--====================一、表的增长方式 当表被创建后,随着记录的不断插入,组成表的区间会被填满,如果启用了自动扩展,则当区间填满后,会分配新的区间。假定高水 位线随着记录的增加从最左端往右端来移动,当到底部区间的尾端时,则新的区间将会被分配。 二、表可收缩的原理 随着记录的增加高水位线不断的右移,记录的删除不会导致高水位线往回(左)移动 删除记录后的空闲空间(高水位线左侧)尽管可以使用,但其稀疏性导致空间空闲 注:完整的表扫描所耗费的时间不会因为记录的减少(删除)而减少三、使用 alte 阅读全文
posted @ 2011-07-25 09:22 ajuanabc 阅读(232) 评论(0) 推荐(0) 编辑
摘要:--========================-- 进程、会话、连接之间的差异--======================== 在使用Oracle database的时候,连接与会话是我们经常碰到的词语之一。咋一看貌似一回事,事实则不然。一个连接上可以建立零个、一个、甚至多个会话。啊,咋这样呢?是的,没错。这也是我们经常误解的原因。 各个会话之间是单独的,独立于其他会话,即便是同一个连接的多个会话也是如此。 一、几个术语之间的定义(参照Oracle 9i &10g 编程艺术) 连接(connection):连接是从客户到Oracle 实例的一条物理路径。连接可以在网络上建立, 阅读全文
posted @ 2011-07-24 20:29 ajuanabc 阅读(263) 评论(0) 推荐(0) 编辑
摘要:--==================================-- 设置 Oracle 监听器密码(LISTENER)--================================== 监听器也有安全?Sure!在缺省的情况下,任意用户不需要使用任何密码即通过lsnrctl 工具对Oracle Listener进行操作或关闭,从而造成任意新的会话都将无法建立连接。在Oracle 9i 中Oracle监听器允许任何一个人利用lsnrctl从远程发起对监听器的管理。也容易导致数据库受到损坏。1. 未设定密码情形下停止监听 [oracle@test ~]$ lsnrctl stop. 阅读全文
posted @ 2011-07-24 11:05 ajuanabc 阅读(731) 评论(0) 推荐(0) 编辑
摘要:--==========================-- 配置sqlnet.ora 限制IP访问Oracle--========================== 与防火墙类似的功能,Oracle 提供限制与允许特定的IP或主机名通过Oracle Net来访问数据库。这个功能由sqlnet.ora配置文件来实现。该文件通常$ORACLE_HOME/network/admin/ 目录下,与tnsnames.ora以及listener.ora位于同一路径。用法也比较简单。通过监听器的限制,实现轻量级访问限制,比在数据库内部通过触发器进行限制效率要高。1. 实现方式 通过在sqlnet.ora 阅读全文
posted @ 2011-07-24 10:22 ajuanabc 阅读(239) 评论(0) 推荐(0) 编辑
摘要:--========================-- Oracle 监听器日志配置与管理--======================== Oracle 监听器是一个服务器端程序,用于监听所有来自客户端的请求,并为其提供数据库服务。因此对监听器的管理与维护相当重要。本文主要描述对Oracle监听器日志文件的配置与管理。有关监听器的描述请参考 配置 ORACLE 客户端连接到数据库 配置非默认端口的动态服务注册 一、监听器日志特性1. 监听器日志是一个纯文本文件,通常位于$ORACLE_HOME/network/log目录下,与sqlnet.log日志文件处于同一路径 2. 其缺省的文件名 阅读全文
posted @ 2011-07-24 09:36 ajuanabc 阅读(516) 评论(0) 推荐(0) 编辑
摘要:--************************************-- db_block_checking 与 db_block_checksum--************************************ db_block_checking与db_block_checksum两个参数都是对block进行检查,然而两者很容易混淆。事实上,两个参数中前者是对块做逻辑性检查,后者则是做物理性检查。两者各司其职,并不矛盾。下面分别给出具体描述。1.db_block_checking db_block_checking 是当block发生任何变化的时候进行逻辑上的完整性和正确 阅读全文
posted @ 2011-07-23 22:40 ajuanabc 阅读(269) 评论(0) 推荐(0) 编辑
摘要:map_off字段 这个字段主要保存map开始位置,就是从文件头开始到map出现的数据长度,通过这个索引就可以找到map数据。那么map保存些什么数据呢?有什么作用呢?下面就来解决这两个问题,首先来分析map的数据结构:名称大小说明size4字节map里项的个数list变长每一项定义为12字节,项的个数由上面项大小决定。每一个map项的结构定义如下:/**Direct-mapped "map_item".*/typedefstruct DexMapItem {u2 type; /* type code (seekDexType* above) */u2 unused;u4 阅读全文
posted @ 2011-07-23 18:23 ajuanabc 阅读(188) 评论(0) 推荐(0) 编辑
摘要:B3log 的文章同步不过来了。伤心啊。。。以后这里就不再发布文章了,文章就都发布到 Vanessa 上,但我还会时不时的登录下,看下这里的好友。 阅读全文
posted @ 2011-07-22 14:25 ajuanabc 阅读(97) 评论(0) 推荐(0) 编辑
摘要:SHA-1签名字段 从dex文件头里,已经看到前面有一个4字节的字段检验码了,那为什么又需要一个SHA-1签名字段呢? 这不是重复了吗?起初始看来,好像是有点重复,可是仔细考虑一下,这样设计,还是比较高明的。因为dex文件的大小,一般都不是很小,简单的应用程序都有几十K大小,这么多数据使用一个4字节的检验码,重复的机率还是有的,也就是说当文件里的数据修改了,还是检验不出来。那么这时,检验码就失去了作用,需要使用更加强大的检验码,这就是SHA-1,它是20个字节,比前面的检验码多了16个字节,理论上就强大了很多,几乎不会不同的文件计算出来的检验是一样的了。设计两个检验码的目的,就是先使用第一个. 阅读全文
posted @ 2011-07-17 19:11 ajuanabc 阅读(256) 评论(0) 推荐(0) 编辑
摘要:魔数字段,主要就是Dex文件的标识符,它占用4个字节,在目前的源码里是 “dex\n”,它的作用是用来区别其它文件的,比如有一个文件也叫Dex结尾的文件,就可以认为它是Davlik虚拟机运行的文件吗?当然不行,因此这四个字节,就起到与别的结尾也是Dex文件的区分。还有Davlik虚拟机也有优化的Dex,也是通过个字段来区分的,当它是优化的Dex文件时,它的值就变成”dey\n”了。根据这四个字节,就可以识别不同类型的Dex文件了。到这里,已经搞清楚什么是魔数的作用了。版本字段,主要用来标识Dex文件的版本。目前支持的版本号为“035\0”,不管是否优化的版本,都是使用这个版本号。检验码字段,主 阅读全文
posted @ 2011-07-16 23:57 ajuanabc 阅读(177) 评论(0) 推荐(0) 编辑
摘要:在android系统里,通过复杂的编译过程,会把java源代码生成dex文件,然后在虚拟机里就会加载这个文件运行。那么这个文件的格式是什么样的呢?为什么android不直接使用class文件,而采用这个不一样文件呢?其实它是针对嵌入式系统优化的结果,比如dex文件采用的指令码,并不是java的标准虚拟机指令,而是自己独立成一套。如果有自己的编译系统,可以不生成class文件,直接生成dex文件。还有dex文件是共用很多类名称、常量字符串,导致它的体积比较小,运行效率比较高。归根到底,就是它采用了基于寄存器的虚拟机实现。接着来分析Dex的文件头,如下:偏移大小说明magic8魔数占4个字节,版本 阅读全文
posted @ 2011-07-15 23:18 ajuanabc 阅读(260) 评论(0) 推荐(0) 编辑
摘要:演示地址:http://www.corange.cn/demo/3778/index.html截图效果代码请直接到演示位置查看源码 原文地址:http://www.corange.cn/archives/2011/06/3778.html 阅读全文
posted @ 2011-07-14 10:37 ajuanabc 阅读(190) 评论(0) 推荐(0) 编辑
摘要:在分析Dalvik虚拟机运行之前,先要了解Davlik指令,但是了解Davlik指令之前又要先懂得指令的格式,才能看得懂指令是怎么样构成,怎么样表达,怎么样查看,下面就来仔细地学习指令格式,这样在代码里看到指令时,就会很自然而然知道这条指令是干什么用了。在Dalvik虚拟机的目录下面有这样一份文档,我们来仔细学习它,如下:本文描述了在Dalvik虚拟机里字节码的指令格式,这种指令格式是使用在另一个文档《指令字节码参考》文档里。指令的位描述下表第一列里说明了每个指令位的布局情况,每16位的字采用空格分隔开来,每个字母表示四位,每个字母按顺序从高节开始,排列到低字节。每四位之间可能使用竖线(|)来 阅读全文
posted @ 2011-07-10 10:00 ajuanabc 阅读(235) 评论(0) 推荐(0) 编辑
摘要:从上一节里,我们学习到JNI的方法表示可知,GetStaticMethodID方法最后一个参数“([Ljava/lang/String;)V”。这个参数是一个字符串,但内容排列比较奇怪,其实它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。这里只是方法描述符,但也有类描述符。其实这串参数“([Ljava/lang/String;)V”具体是表示什么意思呢?怎么样来理解它呢?那么就需要学习这一节了,其实这串字符串就是描述像下面的函数:publicstatic void main(String argv[] 阅读全文
posted @ 2011-07-02 23:02 ajuanabc 阅读(204) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示