怎么查看APK的方法数

原创 2016年08月29日 16:10:04

网上找的一个脚本,电脑系统为windows 亲测 好用。
将下面两个文件printhex.ps1、dex-method-count.bat拷贝到一个文件夹下,文件名字和后缀都不要变,然后将需要检测的classes.dex文件也放在这个文件夹下

打开命令行并切到当前目录下,运行命令

dex-method-count.bat classes.dex

会输出结果
Counting methods in DEX file classes.dex
Number of methods is 63952

方法数没有超过65535个就可以啦,不然就要分包了

printhex.ps1

<#
.SYNOPSIS
Outputs the number of methods in a dex file.

.PARAMETER Path
Specifies the path to a file. Wildcards are not permitted.

#>
param(
  [parameter(Position=0,Mandatory=$TRUE)]
    [String] $Path
)

if ( -not (test-path -literalpath $Path) ) {
  write-error "Path '$Path' not found." -category ObjectNotFound
  exit
}

$item = get-item -literalpath $Path -force
if ( -not ($? -and ($item -is [System.IO.FileInfo])) ) {
  write-error "'$Path' is not a file in the file system." -category InvalidType
  exit
}

if ( $item.Length -gt [UInt32]::MaxValue ) {
  write-error "'$Path' is too large." -category OpenError
  exit
}

$stream = [System.IO.File]::OpenRead($item.FullName)
$buffer = new-object Byte[] 2
$stream.Position = 88
$bytesread = $stream.Read($buffer, 0, 2)
$output = $buffer[0..1] 
#("{1:X2} {0:X2}") -f $output
$outputdec = $buffer[1]*256 + $buffer[0]
"Number of methods is " + $outputdec
$stream.Close()

dex-method-count.bat

@ECHO OFF

IF "%1"=="" GOTO MissingFileNameError

IF EXIST "%1" (GOTO ContinueProcessing) ELSE (GOTO FileDoesntExist)



:ContinueProcessing

set FileNameToProcess=%1

set FileNameForDx=%~n1.dex

IF "%~x1"==".dex" GOTO ProcessWithPowerShell



REM preprocess Jar with dx

IF "%~x1"==".jar" (

    ECHO Processing Jar %FileNameToProcess% with DX!

    CALL dx --dex --output=%FileNameForDx% %FileNameToProcess%

    set FileNameToProcess=%FileNameForDx%

    IF ERRORLEVEL 1 GOTO DxProcessingError

)



:ProcessWithPowerShell

ECHO Counting methods in DEX file %FileNameToProcess%

CALL powershell -noexit -executionpolicy bypass "& ".\printhex.ps1" %FileNameToProcess%

GOTO End



:MissingFileNameError

@ECHO Missing filename for processing

GOTO End



:DxProcessingError

@ECHO Error processing file %1% with dx!

GOTO End



:FileDoesntExist

@ECHO File %1% doesn't exist!

GOTO End



:End

如果是计算一个开源库的方法数,可以访问下面这个网站
http://www.methodscount.com/

版权声明:本文为博主原创文章,未经博主允许不得转载。

查看apk 的方法数量

以前找到的两个网站,由于不常用,放在收藏夹里,偶尔用的时候经常找不到,记录分享一下。直接把apk导入,就可以查看apk的放法数 http://inloop.github.io/apk-method-...

统计 apk 方法数和代码行数小工具

商业 app, 随着业务不停的迭代后,app 体积会由最初的几 M 增加到几十至上百 M,过大的安装包,不利于用户下载安装,那么 apk 瘦身就会被提上日程。本篇文章不会详细介绍怎样瘦身,这里我向大家...

apk方法数统计

  • 2016年07月20日 15:03
  • 32KB
  • 下载

检测apk的总方法数

  • 2015年09月06日 10:09
  • 25KB
  • 下载

查看apk包名和主activity方法

1.命令方法,在platform-tools目录下使用如下命令:aapt dump badging XXX.apk 2.使用re-sign.jar查看 3.通过eclipse中DDMS查看log...

查看apk包名的方法总结

1、有源码的情况:可以通过AndroidManifest.xml文件用程序的包名 2、无源码的情况: (1)通过apktool工具反编译APK,获取包名,反编译的方法连接:http://b...
  • KLsmile
  • KLsmile
  • 2017年07月06日 18:42
  • 243

统计Android apk和jar的方法数

今天遇到了统计Android apk和jar包种方法数的问题,然后搜索到了github上一个很普及的方法dex-method-counts,下载之后使用如下方法 1. 到下载后的目录, 执行...

【工具】统计jar包和apk中的java方法数

这两天被Unable to excute DX的问题缠身,工程太大,方法数量超过65536限制,开发正常build都是you有问题的!纳闷儿为什么Google要搞这个64K方法数的限制?一般大点儿的工...

Android之解决打包apk方法数不能超过65k的问题

作为一名Android开发者,相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常: Conversion to Dalvik fo...

Android Dex65536方法数,热补丁方案,动态加载apk小结

Dex65536超出限制原理神马的也不说了,方法使用google的android-support-multidex方案解。 当然也可以不使用android-support-multidex,可以自定...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎么查看APK的方法数
举报原因:
原因补充:

(最多只允许输入30个字)