当前位置: 首页 > wzjs >正文

如何评判一个网站建设的怎么样创造网址

如何评判一个网站建设的怎么样,创造网址,开发app软件的公司有哪些,深圳模板网站建设公3.2.1 Android调用链路简介 在Android应用程序中,调用链路涉及应用程序中不同组件(如Activity、Service、BroadcastReceiver、ContentProvider)之间的调用关系,以及应用程序与系统服务之间的交互。了解和分析这些调用链路对于调试…

3.2.1 Android调用链路简介

在Android应用程序中,调用链路涉及应用程序中不同组件(如Activity、Service、BroadcastReceiver、ContentProvider)之间的调用关系,以及应用程序与系统服务之间的交互。了解和分析这些调用链路对于调试、性能优化和安全性分析非常重要。以下是Android应用程序调用链路的主要组成部分及其分析方法:

1,Activity调用链

Activity是Android应用程序的基本组件之一,负责处理用户界面和用户交互。
典型的调用链包括Activity的生命周期方法(如onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy())之间的调用。

2,Service调用链

Service是用于在后台执行长时间运行操作的组件。
典型的调用链包括Service的生命周期方法(如onCreate()、onStartCommand()、onBind()、onUnbind()、onDestroy())之间的调用。

3,BroadcastReceiver调用链

BroadcastReceiver用于接收和处理广播消息。
典型的调用链包括onReceive()方法的调用。

4,ContentProvider调用链

ContentProvider用于在应用程序之间共享数据。
典型的调用链包括CRUD操作方法(如query()、insert()、update()、delete())的调用。

5,系统服务调用链

Android应用程序与系统服务(如LocationManager、NotificationManager、ConnectivityManager等)之间的调用。
分析Android应用程序的调用链路
1,使用Android Studio Profiler
Android Studio提供了强大的性能分析工具,可以帮助你分析应用程序的调用链。
打开Android Studio,运行你的应用程序,然后打开Profiler工具。在Profiler中,你可以查看CPU、内存、网络等性能数据,并分析方法调用链。
2,使用日志记录
在代码中添加日志记录,输出调用链信息。使用Log.d()、Log.i()、Log.w()、Log.e()等方法记录关键方法的调用。通过查看日志,可以了解应用程序的调用链。
3,使用Traceview
Traceview是Android SDK提供的一个工具,用于分析应用程序的性能。在代码中使用Debug.startMethodTracing()Debug.stopMethodTracing()方法生成trace文件。使用Traceview工具打开trace文件,查看方法调用链和性能数据。
4,使用第三方工具
  • LeakCanary:用于检测内存泄漏,帮助分析调用链。
  • Stetho:Facebook提供的调试工具,可以查看应用程序的数据库、网络请求等信息。
  • Hugo:用于在方法调用时自动记录日志,帮助分析调用链。

3.2.2 Android App静态调用链路

第一节介绍了很多Android App的调用链路以及相关的分析方法,可以帮助程序员分析问题,定位Bug。作为测试同学,我们更加关注的时,开发修改的某些代码,添加了某些类或是函数,影响到什么功能?以方便界定测试范围,组织测试用例集进行测试。为了达到这个目的,主要关注App的两个调用链路,一个是静态调用链路,通过分析代码,解析出代码间的调用关系。另一个是动态调用链路,通过执行测试用例,记录用例的执行路径,分析相应的调用链路。
本节先介绍静态调用链路,Android App的静态调用链路借助于一个开源的工具java-callgraph2: https://github.com/Adrninistrator/java-callgraph2来进行分析。

1,java-callgrap2的使用

java-callgraph2项目用于对Java代码(编译后的class、jar、war文件)进行静态分析的开源工具。它能够帮助开发者直观地理解程序内部的调用逻辑,从而更好地进行代码审查、性能优化和重构。该工具支持按类、包或整个项目生成调用图,具有简单高效、灵活性和跨平台等特点。
(1)下载与安装
克隆项目仓库:
git clone https://github.com/Adrninistrator/java-callgraph2.git
进入项目目录:
cd java-callgraph2
构建项目(使用 Maven):
mvn clean install

(2)生成调用图
假设你有一个 Java 项目 my-java-project,你可以使用以下命令生成调用图:
java -jar target/java-callgraph2.jar -source my-java-project -output callgraph.dot

生成的 callgraph.dot 文件可以使用 Graphviz 工具进行可视化:

dot -Tpng callgraph.dot -o callgraph.png
如:

2,Android App调用链路分析

App调用链路分析可以使用java-graph2对项目文件进行直接分析,这是项目的源码文件,可能存在打包过程中动态生成的类的调用关系无法分析出来。经过调研,发现通过对App直接反编译,再进行分析会更加全面,具体流程如下:
(1)App链路分析
  • App链路分析,先从指定的地方下载到要测试的Apk文件,这个文件是要进行链路分析的,不能是其他的版本,否则可能存在代码不一致的情况。
  • 将apk文件重新命名为zip文件,并进行解压或是通过解压软件,直接对apk进行解压,拿到包中的文件。不过这些文件不能直接进行分析,要通过反编译手段进行处理,dexjar:https://github.com/pxb1988/dex2jar,将文件夹里的dex文件反编译成jar文件。当然也可以通过以下命令,将apk包直接反编译成jar包:
sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk
如果apk文件较大,建议解压后再进行反编译。
  • 通过java-callgraph2工具,将反编译后的jar包进行链路分析,将分析后的结果保存到txt文件中。
java -jar path/java-callgraph2.jar -Doutput.file=calllink.txt path/source.jar
调用关系数据如下所示:
J:1 /Users/sxf/Downloads/Kim/classes-dex2jar.jar
C:K.S K.S
C:K.S java.lang.Object
M:1 K.S:<init>() (O)java.lang.Object:<init>() 0 1
C:aegon.chrome.base.ActivityState aegon.chrome.base.ActivityState
C:aegon.chrome.base.ActivityState java.lang.Object
C:aegon.chrome.base.ActivityState java.lang.annotation.Annotation
C:aegon.chrome.base.ApiCompatibilityUtils$ApisLmr1 aegon.chrome.base.ApiCompatibilityUtils$ApisLmr1
C:aegon.chrome.base.ApiCompatibilityUtils$ApisLmr1 java.lang.Object
C:aegon.chrome.base.ApiCompatibilityUtils$ApisLmr1 aegon.chrome.base.ApiCompatibilityUtils
C:aegon.chrome.base.ApiCompatibilityUtils$ApisLmr1 android.view.View
M:2 aegon.chrome.base.ApiCompatibilityUtils$ApisLmr1:<init>() (O)java.lang.Object:<init>() 0 1
M:3 aegon.chrome.base.ApiCompatibilityUtils$ApisLmr1:setAccessibilityTraversalBefore(android.view.View,int) (M)android.view.View:setAccessibilityTraversalBefore(int) 0 1
C:aegon.chrome.base.ApiCompatibilityUtils$ApisM aegon.chrome.base.ApiCompatibilityUtils$ApisM
C:aegon.chrome.base.ApiCompatibilityUtils$ApisM java.lang.Object
C:aegon.chrome.base.ApiCompatibilityUtils$ApisM aegon.chrome.base.ApiCompatibilityUtils
C:aegon.chrome.base.ApiCompatibilityUtils$ApisM android.view.View
M:4 aegon.chrome.base.ApiCompatibilityUtils$ApisM:<init>() (O)java.lang.Object:<init>() 0 1
M:5 aegon.chrome.base.ApiCompatibilityUtils$ApisM:setStatusBarIconColor(android.view.View,boolean) (M)android.view.View:getSystemUiVisibility() 0 1
M:6 aegon.chrome.base.ApiCompatibilityUtils$ApisM:setStatusBarIconColor(android.view.View,boolean) (M)android.view.View:setSystemUiVisibility(int) 0 1

  • 处理app下所有的调用关系数据,将数据保存成如下数据结构:
{"class1:method1":{"methodin":[调用方函数列表],"methodout":[调用函数列表]}}}
将数据序列化保存到pickle文件中,注意通过路径来区分一下app的版本号,分支信息等。
(2)查询影响范围
当对一个App创建的调用链路数据后,就可以根据提测版本,通过git diff获取修改的文件,再通过修改的行号,获取出修改的函数名参数等信息,拼接出如:包名.类名:函数名,存到相应的文件中,如diffdetail.txt中。
读取diffdetail.txt文件,按行去查询调用关系,再拿调用关系的methodin中的函数列表进行查询,直到没有调用关系,或是到页面为止, 从而形成一个调用链路,以此来评估需求改动的影响范围。或是在精准测试平台后面的功能中,会以影响范围来进行用例推荐,推荐测试同学执行相关的测试用例集,以达到对需求改动的全面覆盖。


文章转载自:

http://MDqudoJB.nyjgm.cn
http://2OYLFSPt.nyjgm.cn
http://TiYqkNxw.nyjgm.cn
http://ssjzujM3.nyjgm.cn
http://HeEX1Jnp.nyjgm.cn
http://TG5KDhMu.nyjgm.cn
http://Rv00qkdi.nyjgm.cn
http://hf3Fl8kk.nyjgm.cn
http://C1XGaiDs.nyjgm.cn
http://dXGbrdSS.nyjgm.cn
http://MiE6K5E8.nyjgm.cn
http://XN322QJi.nyjgm.cn
http://D87l99nh.nyjgm.cn
http://zW8WNZN6.nyjgm.cn
http://B7L5dzNX.nyjgm.cn
http://qLUmsxSn.nyjgm.cn
http://IOeD2dQA.nyjgm.cn
http://72ZykXCO.nyjgm.cn
http://yMmCIenM.nyjgm.cn
http://VafuJtxu.nyjgm.cn
http://zvDnzmnd.nyjgm.cn
http://tzGNNB2F.nyjgm.cn
http://6CRPXLet.nyjgm.cn
http://CJleqKMy.nyjgm.cn
http://TvU1o81i.nyjgm.cn
http://Bk06rYbw.nyjgm.cn
http://pjnDM8lE.nyjgm.cn
http://sW5L4aO5.nyjgm.cn
http://aXf7RLpC.nyjgm.cn
http://KYqkkvIO.nyjgm.cn
http://www.dtcms.com/wzjs/709904.html

相关文章:

  • 游民星空是用什么做的网站电商产品开发流程
  • 网网站基础建设优化知识网站建设的市场定位的方案
  • 黑龙江网站建设企业aso优化技巧大aso技巧
  • 建站推广文案科技基金
  • 龙岗网站建设_公司推广wordpress透明化插件
  • 网站开发步骤规划沈阳网站制作 房小二网
  • 上海知名的网站建设公司六安马启兵轮轩案
  • 做包装盒子的厂家哪个网站北京学校线上教学
  • 接网站建设_网站设计企业网站建设管理制度
  • 外贸网站建设公司平台网站的导入流量怎么做
  • 湛江网站建设方案策划网站大学报名官网入口
  • 网站备案要营业执照原件吗手机网站开发+图库类
  • 狗贩子怎么做网站卖狗融资平台公司是什么意思
  • 集团网站建设网络公司广告公司网站设计策划书
  • dw 怎么做钓鱼网站这么做国外网站的国内镜像站
  • 网站地图做计划任务济宁市建设工程质量监督站网站
  • 网站规划建设与管理维护大作业缪斯国际设计董事长
  • 满山红网站建设公司沧州自适应网站建设
  • 自己优化网站隐私浏览器
  • php 实现网站扫码登录网站运营优化
  • 东昌府区网站建设公司海口网站设计
  • 网站建设销售实训报告酒店软装设计公司官网
  • 大型电商网站开发建网站的目的
  • 全国建筑资质查询网站长沙seo优化推广
  • 面包屑 网站做本地网站赚钱
  • 网站有哪些内容网站子域名怎么设置
  • 陕西通达工程建设有限公司网站好的用户体验网站
  • 上海杨浦区建设网站公众号开发免费
  • 做网站需要多少钱协会宣传网站开发方案
  • 网站建设最基础的是什么意思网站后台管理系统php