怎么查看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方法数统计

  • 2016-07-20 15:03
  • 32KB
  • 下载

检测apk的总方法数

  • 2015-09-06 10:09
  • 25KB
  • 下载

查看apk包名的方法总结

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

统计Android apk和jar的方法数

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

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

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

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

Dex65536超出限制原理神马的也不说了,方法使用google的android-support-multidex方案解。 当然也可以不使用android-support-multidex,可以自定...

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

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

Android工程打包apk方法

  • 2015-11-06 11:36
  • 189KB
  • 下载

减小Apk包大小的常用方法

我们之所以要减小apk的大小,一方面是为了节省用户手机的内存;另一方面是为了节省用户在App安装和版本升级时的流量; 直接减小apk文件大小的方法: 1.使用图片压缩工具; 目前常用的工具是:Ima...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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