位置: 编程技术 - 正文

菜鸟学安卓Log.v(“第二篇”)——安卓的体系结构(菜鸟学安卓逆向)

编辑:rootadmin

推荐整理分享菜鸟学安卓Log.v(“第二篇”)——安卓的体系结构(菜鸟学安卓逆向),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:菜鸟教程官网app,菜鸟教程下载,菜鸟教程安卓下载,菜鸟教程手机版下载,菜鸟教程手机版下载,菜鸟教程手机版下载,菜鸟教程手机版下载,菜鸟教程 安卓版,内容如对您有帮助,希望把文章链接给更多的朋友!

安卓的体系结构图:

上面就是一个安卓体系的图,大概要了解一下,红色部分是安卓体系结构的最底层,驱动层(具体驱动层真正的内容我目前不是很清楚,大概理解就是和电脑的驱动差不多,要安装具体的驱动才能实现某些功能,而安卓也需要一些驱动才能实现手机的某些功能,后面我再去深入了解,再来真正解释),绿色部分就是用c或者c&#;&#;写的类库(我觉得目前知道是用c&#;&#;和c写的就行),蓝色地部分就是用java语言编写的内容,APPLICATION FRAMEWORK层,字面理解就是应用程序框架层(作用:当我们去开发一个安卓应用的时候,可以通过去调用这个框架层中的内容来实现安卓程序),APPLICATIONS层,就是应用程序层(这就是安卓开发人员开发的应用程序,在这些应用程序中包含了安卓系统自带的一些安卓应用,当自己在开发一个自己的安卓应用时,可以通过一些方法去调用系统自带的应用,比如通过自己的应用程序去调用系统的打电话,发短信等应用),最后剩下一个显&#;的块就是ANDROID RUNTIME(安卓运行时),其中Core libraries就相当于java中的jre,但是对其中的一些jar包进行了重写,Dalvik VM就相当于java中JVM虚拟机的作用——安卓程序的运行环境,这里可能会有一个问题,既然安卓程序是用java语言编写的,为什么不直接通过java虚拟机运行安卓程序,而安卓要自己弄一个自己的运行环境?我觉得这个问题还是比较&#;得思考的,我通过一些视频,还有搜索也得到了一些答案,第一点就是:首先安卓和java我们都知道并不是属于一个公司的东西,安卓是谷歌公司的,而java是sun公司的,但sun公司已经被甲骨文公司收购,谷歌要是直接使用JVM肯定会有一个版权的问题,从这一点来说就不行,第二点就是我下面要讲的内容:jvm和Dalvik VM的区别。

接下来就是jvm和Dalvik VM的区别:

JVM: .java --> javac --> .class --> jar --> .jar

架构: 堆栈

DVM: .java --> javac --> .class --> dx.bat(批处理) --> .dex->.odex(这个.odex了解就好,就是对dex预处理以后得到的,可以对软件起到加速的)架构: 寄存器(cpu上一块高速的缓存)

菜鸟学安卓Log.v(“第二篇”)——安卓的体系结构(菜鸟学安卓逆向)

.jar和.apk包的结构图:

上面的图片和内容就是我对JVM和jDalvik VM的对比,现在来注意一下下面图片中的内容,首先我们应该知道其实一个.APK文件其实也是一个压缩包,就是将很多文件压缩到一个包中,先来看.jar包,可以看到一个.jar中其实是由很多个.class文件构成,去分析其中的一个.class文件可以发现一个重要的地方,就是用红笔圈起来的地方header,就是.class文件的一个头,其中包含的内容就是JDK编译的版本号,因此我们可以知道如果我们将当前这个.jar包导入到并不是这个头对应编译版本JDK下去就可能会抛出一些问题(比如我将1.6版本jdk编译的.jar包导入到1.5版本的jdk下就可能出现问题),这里的重点并不是这个导入jar包JDK版本不同的问题,而是我们可以发现每个.class文件都会有个这么一个头,如果有个.class文件,那么对应的.class文件中的头就需要写入或者读次,感觉就是数据冗余了,可以看出JVM这样运行这样的.jar包效率会很低,而对比右边的.dex文件,一个.dex中只有一个header,这样通过jDalvik VM去运行的效果肯定好于JVM,这样便是上面第二点的最终答案,也是为什么安卓需要通过自己开发的Dalvik VM虚拟机去运行程序二不用JAVA中的JVM去运行,Dalvik VM虚拟机其实是针对手机而对JVM进行了改进的一个安卓自己的虚拟机。

我还用一个大括号扩起来图片中的一些内容,这个目前我也就知道是安卓中一个池(如字符串池)的概念,就是将一些相同的资源放入到一个池子中,然后通过地址(这些地址是放在寄存器中的)的方式来寻找这个资源,暂时知道这些,后面再来了解。

无线adb调试 要求:1.要求手机已经root了2.android端与PC端在同一个局域网中。步奏:1.android端下载并安装adbWireless(传送门)2.android端,打开adbWireless,点击中间的按钮开

WIN7、WIN8打开命令行Cmd窗口 一、Win7系统大家习惯WinR的组合键打开运行,然后输入CMD打开命令提示符。二、一般打开菜单是没有打开命令行的如下图进入某个文件夹里面,先按住Shi

不透明度进制值 alpha不透明度进制%FF%F%E%D%CC%BF%B%A%%8C%%%%%4D%%%%1A5%0D0%

标签: 菜鸟学安卓逆向

本文链接地址:https://www.jiuchutong.com/biancheng/374563.html 转载请保留说明!

上一篇:android-service(androidserviceslibrary停用)

下一篇:无线adb调试(无线adb调试开关下载)

  • 收购分公司和谁签协议
  • 增值税纳税义务发生地点的规定
  • 免交增值税免印花税吗
  • 公司团体体检的洽谈
  • 税务大厅可以开票吗
  • 个税手续费返还属于政府补助吗
  • 买入返售金融资产什么意思
  • 以前年度损益调整结转到未分配利润
  • 分期收款销售货物 收入确认
  • 税法上的营业收入与会计差异
  • 年终红包怎么入账
  • 超过180天增票不抵扣财务还可以入账吗?
  • 营改增后消费型增值税怎么算及举例说明
  • 外币折算买入价卖出价
  • 单位租房水电费是个人名字是否可以抵扣
  • 拆迁安置土地的补偿标准
  • 增值税包括土地整治收入吗
  • 长期待摊费用与折旧区别
  • 个体工商户开9%的税需要什么
  • 出纳人员怎么核对现金日记账?
  • 内部交易进项税怎么算
  • 银行认购公司债券的条件
  • backupnotify.exe是什么文件的进程 backupnotify进程安全吗
  • win10电脑设备管理器在哪
  • 应用程序无法正常启动0xc000012d
  • php获取中文字符串长度
  • 房产税具体内容
  • 存货跌价后销售会计分录
  • 会计差错及账项调整
  • 若依框架是什么框架
  • 非金融机构从事贷款谁负责监管
  • 研发费用如何加计扣除何时申报
  • 资产负债表申报怎么填
  • php结果以什么形式返回
  • java前端开发是做什么的
  • 水电费是收据能入账不
  • 上个月发票税率怎么查
  • 销项税大于进项税当月交税吗
  • 三类职业指的是什么
  • 增值税小规模纳税人适用3%征收率
  • sql语句优化实例
  • 资产减值损失包括什么
  • 折旧率多少正常
  • 期权权利金的计算公式
  • 一般纳税人开出去的普票可以用进项抵扣吗
  • 成品油发票的六个问答
  • 预提费用没有收到发票也没有付款
  • 电费发票未到怎么入账
  • 社保应该如何缴纳
  • 股东多缴投资款处理
  • 母子公司可以合并吗
  • 递延所得税会计处理全过程
  • 工程检测费的会计分录
  • 什么是大病医疗救助
  • 采购未取得发票怎么结转成本
  • 第一份工作的五个条件
  • 公司流水账怎么做
  • sql行列转换方式
  • linux存在的意义
  • 一键清理是干什么用的
  • windows预览版和正式版区别
  • softmangerlite.exe是什么进程 有什么用
  • hdaudpropshortcut.exe是什么进程 作用是什么 hdaudpropshortcut进程查询
  • linux7.2 sudo权限配置
  • 置顶如何设置固定顺序
  • css中边界margin的多种定义方法
  • python网络爬虫教程
  • linux怎么使用c语言
  • 用javascript
  • javascript概述及作用
  • 浏览器窗口上线怎么办
  • javascript函数的定义
  • android数据存储文件读写实验
  • 消防咨询电话24小时
  • 税务部门的扣款协议
  • 从国外进口设备需要缴纳增值税吗
  • 国家税务总局验证码
  • 温州电子税务局电话号码
  • 怎么注册山东省采购网
  • 广西南宁地税局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设