【问题标题】:How to get the size of installed application?如何获取已安装应用程序的大小?
【发布时间】:2014-01-10 06:27:26
【问题描述】:

我正在尝试计算已安装应用程序的大小。

我找到了答案here

我在部分设备上测试过,除了三星Galaxy Note3(4.3)没有问题。

我收到此错误:java.lang.NoSuchMethodException: getPackageSizeInfo()

我想知道有没有其他方法可以获取已安装应用程序的大小?

【问题讨论】:

标签: android size apk filesize


【解决方案1】:

试试这个...

public static long getApkSize(Context context, String packageName)
        throws NameNotFoundException {
    return new File(context.getPackageManager().getApplicationInfo(
            packageName, 0).publicSourceDir).length();
}

【讨论】:

  • 我认为必须使用这种方法作为备用方法。
  • 这是“APK”文件大小,不是已安装应用的大小
【解决方案2】:

也许这个链接会对你有所帮助:

http://nsamteladze.blogspot.com/2012/10/get-apks-code-size-in-android.html

基本上,他正在利用反射的概念,这是一个强大的工具,但并不总是可取的。在此处阅读更多信息:What is reflection and why is it useful?,如果适合您,请使用它。

【讨论】:

  • 我已经按照博客说的方式进行了,我想我必须使用apk文件的大小作为替代方案。
【解决方案3】:

您可以在没有 AIDL 文件的情况下获取应用程序大小 -------> Kotlin 语言

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

    val intent = Intent(Intent.ACTION_MAIN)
    intent.addCategory(Intent.CATEGORY_LAUNCHER)  
        
    val list = packageManager.queryIntentActivities(intent,0)
            
    // Set adapter to LIST VIEW
    listView.adapter = getApps(list)
 }
       
 private fun getApps(List: MutableList<ResolveInfo>): List<AppData> {
            
     val list = ArrayList<AppData>()
      for (packageInfo in List) {
                      
         val packageName = packageInfo.activityInfo.packageName
           // return size in form of Bytes(Long)             
    val size = File(packageManager.getApplicationInfo(packageName,0).publicSourceDir).length()
          
          val item = AppData(Size)
            list += item
      }
   return list
   }
}
 // Make Data Class
data class AppData(val size: Long)

记得把它从 Bytes 转换成 MB

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多