精华内容
下载资源
问答
  • 问题:手机安装60个应用后,系统变得非常卡手机:android O(8.0) 最新的机器。结论: 360手机助手加固功能不适配,引起被加壳的应用走360的dex路径,造成没有正常生成优化文件odex,vdex, 所以每次apk露面的时候都会...

    问题:手机安装60个应用后,系统变得非常卡

    手机:android O(8.0) 最新的机器。

    结论: 360手机助手加固功能不适配,引起被加壳的应用走360的dex路径,造成没有正常生成优化文件odex,vdex, 所以每次apk露面的时候都会做重复的做而且无用的dex2oat动作,造成系统卡顿。

    分析:

    1,在打开一些应用后手机就变得非常的卡,慢。打印log发现dex2oat 编译做的非常频繁。这个肯定会强制很多的CPU,而且dex2oat会短时间内让手机所有进程暂时暂停一下。所以dex2oat过多频繁的话会照成系统卡顿。 log 如下, 迅雷 应用由于安装的时候是quicken模式,在打开的时候会做很多dex2oat , 包括他的lib库也是要做的.

    04-03 13:51:42.150 26800 26800 I dex2oat : /system/bin/dex2oat --input-vdex-fd=-1 --output-vdex-fd=18 --compiler-filter=quicken --classpath-dir=/data/app/com.xunlei.downloadprovider-PmpNZvip8SWSJDfgKxYPSw== --class-loader-context=PCL[/system/framework/android.test.mock.jar:/system/framework/android.test.runner.jar]
    04-03 13:51:42.159 26800 26800 W dex2oat : Could not reserve sentinel fault page
    04-03 13:51:42.701 26800 26800 I dex2oat : dex2oat took 552.891ms (353.157ms cpu) (threads: 2) arena alloc=7KB (7312B) java alloc=32KB (32832B) native alloc=1305KB (1336912B) free=1254KB (1284528B)
    04-03 13:53:02.491 27454 27454 W dex2oat : Using default instruction set features for ARM CPU variant (default) using conservative defaults
    04-03 13:53:02.492 27454 27454 I dex2oat : The ClassLoaderContext is a special shared library.
    04-03 13:53:02.493 27454 27454 I dex2oat : /system/bin/dex2oat --dex-file=/data/data/com.xunlei.downloadprovider/app_baidu_ad_sdk/__xadsdk__remote__final__running__.jar --output-vdex-fd=143 --oat-fd=144 --oat-location=/data/data/com.xunlei.downloadprovider/app_baidu_ad_sdk/oat/arm/__xadsdk__remote__final__running__.odex --compiler-filter=quicken --class-loader-context=&
    04-03 13:53:02.499 27454 27454 W dex2oat : Could not reserve sentinel fault page
    04-03 13:53:02.598 27463 27463 W dex2oat : Using default instruction set features for ARM CPU variant (default) using conservative defaults
    04-03 13:53:02.598 27463 27463 I dex2oat : The ClassLoaderContext is a special shared library.
    04-03 13:53:02.599 27463 27463 I dex2oat : /system/bin/dex2oat --dex-file=/data/data/com.xunlei.downloadprovider/app_e_qq_com_plugin/gdt_plugin.jar --output-vdex-fd=150 --oat-fd=151 --oat-location=/data/data/com.xunlei.downloadprovider/app_e_qq_com_plugin/oat/arm/gdt_plugin.odex --compiler-filter=quicken --class-loader-context=&
    04-03 13:53:02.640 27463 27463 W dex2oat : Could not reserve sentinel fault page
    04-03 13:53:03.525 27454 27454 I dex2oat : dex2oat took 1.035s (671.327ms cpu) (threads: 2) arena alloc=2240B (2240B) java alloc=393KB (402896B) native alloc=1158KB (1186760B) free=2MB (2483256B)
    04-03 13:53:03.758 27463 27463 I dex2oat : dex2oat took 1.162s (657.150ms cpu) (threads: 2) arena alloc=2736B (2736B) java alloc=246KB (252176B) native alloc=1238KB (1268448B) free=1833KB (1877280B)
    04-03 13:53:10.854 27664 27664 W dex2oat : Using default instruction set features for ARM CPU variant (default) using conservative defaults
    04-03 13:53:10.856 27664 27664 I dex2oat : /system/bin/dex2oat --dex-file=/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex --dex-file=/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex!classes2.dex --dex-file=/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex!classes3.dex --dex-file=/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex!classes4.dex --oat-file=/data/data/com.xunlei.downloadprovider/.jiagu/oat/arm/classes.odex --inline-max-code-units=0 --compiler-filter=speed
    04-03 13:53:10.860 27664 27664 E dex2oat : Expected valid zip or dex file: '/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex'
    04-03 13:53:10.862 27664 27664 I dex2oat : dex2oat took 9.340ms (7.456ms cpu) (threads: 2)


    2, 但是比较奇怪的是,每次打开迅雷都会做dex2oat。 这就不正常了, 因为做过一次后就不会做了的。

    04-03 14:00:00.908 29373 29373 I dex2oat : /system/bin/dex2oat --dex-file=/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex --dex-file=/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex!classes2.dex --dex-file=/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex!classes3.dex --dex-file=/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex!classes4.dex --oat-file=/data/data/com.xunlei.downloadprovider/.jiagu/oat/arm/classes.odex --inline-max-code-units=0 --compiler-filter=speed

    04-03 14:00:00.912 29373 29373 E dex2oat : Expected valid zip or dex file: '/data/data/com.xunlei.downloadprovider/.jiagu/classes.dex'


    3, 进入到log说道的这个目录:/data/data/com.xunlei.downloadprovider/.jiagu/oat/arm/ 居然发现odex, vdex文件均为0. 也就是说根本没有生成可用的优化文件。

    /data/data/com.xunlei.downloadprovider/.jiagu/oat/arm # ls -l
    total 0
    -rw-r--r-- 1 u0_a113 u0_a113 0 2018-04-03 14:00 classes.odex

    -rw-r--r-- 1 u0_a113 u0_a113 0 2018-04-03 14:00 classes.vdex


    4, 但是/data/app目录下有安装的时候生成的odex, vdex:

    /data/app/com.xunlei.downloadprovider-PmpNZvip8SWSJDfgKxYPSw==/oat/arm # ls -l
    total 8260
    -rw-r--r-- 1 system all_a113   41384 2018-04-03 13:51 base.odex

    -rw-r--r-- 1 system all_a113 8402276 2018-04-03 13:51 base.vdex


    5, 把/data/app下面的odex, vdex拷贝到.jiagu/oat/arm 目录下, 在启动这个进程就不会有dex2oat产生了。所以问题找到, 而且系统也不卡了。

    6, 这个.jiagu 这个目录是谁创建的, 我们系统源码中并没有地方会创建这个隐藏文件。通过查找资料,发现这是360手机助手的 app加固功能。 即开发者上传app的时候选择了360应用加固,360就会分析apk的源码,并给apk加一层壳,使得360可以在这些应用的欢迎页面等地方加上自己的logo和广告都是可以的。并且360重写了系统方法做dex会走360自己的dex提取方法。所以提取的文件会放到.jiagu的隐藏文件中。并且他没有适配最新的android 8.0 , 所以出现了此问题。也不知道他还干了什么别的隐藏功能没,比较后怕的一种行为。

    7, 当安装一个叫"米粒"桌面应用, 也会发生这样的情况。 桌面是用户使用率很高的应用。 每次按back, home key退出到桌面都做一次dex2oat, 那系统就卡顿的频率就非常多了。用户体验就很糟糕。


    8, 从google play store 安装应用,检查了一下不存在这样的问题。





    展开全文
  • 安装应用android

    2012-08-07 14:24:11
    当你打包发布的时候,要用到公司指定的签名库,就不会出现未安装应用的情况了。 还有打包的时候,windows上面Eclipse反应有点,可能会报res下面的图片资源问题,只需要再在手机上调试一下,再打包出来,应该就...

    平时开发程序的时候,Eclipse会自己生成一个签名库,.android/debug.keystore在这个位置;

    当你打包发布的时候,要用到公司指定的签名库,就不会出现未安装应用的情况了。

    还有打包的时候,windows上面Eclipse反应有点慢,可能会报res下面的图片资源问题,只需要再在手机上调试一下,再打包出来,应该就没有问题了。

    展开全文
  • ”茄子快传”是联想开发的一款近距离文件共享软件,它通过wifi-direct(速度飞快,不需要联网)或者普通的网络(速度)在不同手机间传递文件。不知为何,它就火了起来,火的也飞快。其中,共享传输已安装程序文件apk这...

           ”茄子快传”是联想开发的一款近距离文件共享软件,它通过wifi-direct(速度飞快,不需要联网)或者普通的网络(速度慢)在不同手机间传递文件。不知为何,它就火了起来,火的也飞快。其中,共享传输已安装程序文件apk这一功能引起了我强烈的兴趣。

     

     

     

            我们知道android对每个应用的权限做了很苛刻的控制,每个应用程序有自己的用户id,每个应用程序只能访问自己的数据,比如程序com.android.calculator计算器程序只被允许访问/data/data/com.android.calculator目录下的数据,且该程序的所有数据也都保存在该目录下。同时当程序被安装时,系统会将安装文件apk拷贝到/data/app目录下。那茄子快船作为普通的程序,它怎么具有读取/data/app下apk文件的权限的呢?如果它不是读取该目录下的apk文件,那程序的安装文件apk它是从哪里获取到的呢?

             于是,我开始充分发挥主观能动性,开始不停思考它的实现方法,并有了如下想法和实践。

     

    实现原理分析及实践

     

     

    1)  实现方式一:

     

            一开始我很坚定的认为茄子快船肯定不是读取手机里的程序的安装文件apk。我认为它只不过读取了系统所有已安装程序的信息,然后根据程序的包名在网络服务器上搜索对应的安装文件(apk文件)并下载,然后再通过网络传送给其他手机。

     

           为了验证这一猜测,我猜想只要我断了网络,它自然没法做程序搜索,那么肯定就没法传送文件了。于是,我做了如下实验:

    我断掉自己手机的所有网络(2g/wifi),然后再使用这个功能选择某一程序并选择发送给其他手机,结果发现它仍然工作。

     

            于是我接着猜测,这个apk文件很有可能在程序安装的时候就从服务器下载到茄子快船程序的目录里了,因此在发送的时候它不再需要网络了。于是我又做了另外一个实验:

     

             我断掉我所有的网络,然后通过adb安装某一程序,这样在安装的过程中,茄子快船肯定是没法从网络上下载相应的apk文件的。但是出人意料的是,茄子快船仍然成功传送了我刚刚安装的程序对应的安装文件。

    2)  最后我不得不相信它确实是通过读取/data/app下的apk文件来传送安装程序的。

              那我开始想了,难道/data/app下的文件本身确实是可读的。我不信邪,我开始查看这些文件的权限信息。           于是我又开始了下面的实验。为了模拟一般程序的权限,我用shell用户来执行读取/data/app/下的文件以      验证普通程序是否有相关权限。

     

    itleaks@Itleaks/tmp$ adb shell
    1|shell@htc:/ $ ls /data -al                                                
    opendir failed, Permission denied
    shell@htc:/ $ ls /data/app -al
    opendir failed, Permission denied
    #没有权限
    1|shell@htc:/ $

     

     

              从上面可以看出一般的程序应该是没法直接读取/data/app下面的文件啊,不对啊?只好出绝招了,我接着又使用root用户来查看目录的具体权限:

     

     

    1|shell@htc:/ $ su root
    root@htc:/ # ls /data -al
    ls /data -al
    drwxrwx--x system   system            2014-06-19 20:40 app

     

     

     

               到此,我终于明白了,原来/data/app目录对于其他用户具备-x权限。也就是说普通程序可以进入该目录,但是没法读取该目录文件里的内容,即没法查询该目录下有哪些文件。这也是为什么我们执行ls /data/app –al失败的原因,因为这个命令会读取目录文件,自然需要该目录对其他用户开放-r权限。在-x权限下,只需该目录下的文件对第三方程序开发-r权限,那么程序就可通过具体文件名称来读取该目录的对应文件。于是迫不及待的想看该目录下的文件权限属性。

     

     

    root@htc:/ # cd /data/app
    cd /data/app
    root@htc:/data/app # ls -al
    ls -al
    -rw-r--r-- system   system    5784942 2014-05-18 15:22 cn.lvye.hd-1.apk
    -rw-r--r-- system   system   16056547 2014-05-16 21:11 cn.whonow.whonow-1.apk

     

     

     

              果然,目录下的apk对于其他用户有-r权限。于是我重新模拟普通程序用户的权限开始如下的实验。

     

     

    root@htc:/data/app # exit
    exit
    #回到shell用户
    shell@htc:/ $ ls /data/app
    opendir failed, Permission denied
    shell@htc:/ $ cd /data/app
    #进入/data/app目录成功
    shell@htc:/data/app $ cd -
    /
    1|shell@htc:/ $ ls /data/app/cn.lvye.hd-1.apk -al
    -rw-r--r-- system   system    5784942 2014-05-18 15:22 cn.lvye.hd-1.apk
    #读取apk文件成功

     

     

     

              从上面可以看出,shell用户已经成功读取到cn.lvye.hd-1.apk文件的信息。但是还有一个问题,我们刚刚是通过root用户来查看/data/app目录下的apk文件的名字的,对于普通用户来说,它是没法知道/data/app下有哪些文件的,那它是如何知道某一个程序的安装文件名的呢?其实这个很简单,已安装程序的PackageInfo.sourceDir信息会指明该程序的安装程序名称及路径。具体获取代码如下:

     

    public class MainActivity extends Activity {
    
    	private static final String TAG = "Itleaks test";
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		readFirstApkFile();
    	}
    
    	private void readFirstApkFile() {
    		// TODO Auto-generated method stub
            List<PackageInfo> installedList = this.getPackageManager().getInstalledPackages(0);
            int installedListSize = installedList.size();
            ApplicationInfo firstApplicationInfo = null;
            for(int i = 0; i < installedListSize; i++) {
                PackageInfo info = installedList.get(i);
                ApplicationInfo aInfo = info.applicationInfo;
                Log.d(TAG, "application source dir " + aInfo.sourceDir); 
                if (firstApplicationInfo == null) {
                	firstApplicationInfo = aInfo;
                }
            }
            File file = new File(firstApplicationInfo.sourceDir);
            if (!file.exists()) {
            	Log.e(TAG, "package:" + firstApplicationInfo.packageName
            			+ " Apk file " + firstApplicationInfo.sourceDir + " doesn't exist");
            } else {
            	FileInputStream in = null;
    			try {
    				in = new FileInputStream(file);
    				int size;
    				try {
    					size = in.available();
    		        	Log.d(TAG, "Apk file " + firstApplicationInfo.sourceDir + " size:" + size);
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			} catch (FileNotFoundException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
            }
    	}
    }

     

     

     

             对于乐视lvye这个程序,其sourceDir为/data/app/cn.lvye.hd-1.apk,有了这个文件路径,普通程序就可以通过一般的文件读取操作来读取该文件了。


     

    附录:

     

             大家可以在github上下载到文中的源码及apk文件:

             https://github.com/itleaks/apkfileshare

    /********************************

    * 本文来自博客  “爱踢门”

    * 转载请标明出处:http://blog.csdn.net/itleaks

    ******************************************/

    展开全文
  • 软件的安装(二)软件的简单应用首先选择要监听的网卡设置监听规则 (一)软件的安装 1.软件的下载 链接:https://pan.baidu.com/s/1E1e-NVvD6vUDeLC5zoDNIQ 提取码:i143 复制这段内容后打开百度网盘手机App,操作...

    (一)软件的安装

    1.软件的下载

    链接:https://pan.baidu.com/s/1E1e-NVvD6vUDeLC5zoDNIQ
    提取码:i143
    复制这段内容后打开百度网盘手机App,操作更方便哦

    官网的下载地址就不贴了,下的也挺慢,用了我半个小时才下完,本程序对应64位。

    2.软件的安装

    在这里插入图片描述
    一直下一步

    桌面快捷方式别忘勾选。
    在这里插入图片描述
    在这里插入图片描述
    next 直到安装完成。

    (二)软件的简单应用

    1.首先选择要监听的网卡

    双击要监听的网卡。
    在这里插入图片描述
    在这里插入图片描述

    2.设置监听规则

    • 选择要监听的网址包含字段
    http.host contains logdemo
    

    在这里插入图片描述

    • 选择要监听的ip地址
    ip.addr == 61.135.169.121
    

    在这里插入图片描述

    • 选择监听的端口
    tcp.port == 80
    

    在这里插入图片描述

    • 复核选择
    http and ip.addr == 112.80.255.122
    ip.dst == 192.168.1.155 or tcp.port == 80
    

    在这里插入图片描述
    在这里插入图片描述

    3.配合tcpdump完成服务器端包的解析

    当请求的数据量比较大的时候或者响应数据量比较大的时候,会导致截取不到响应的包。

    tcpdump -i eth1 port 8084 -w 8084.pcap #监听eth1网口中的8084端口并且写入文件8084.pcap
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 这是一个 android 应用程序,它提供了安装应用程序的人的位置(手机信号塔位置)。 这个应用程序的工作有点独特。 通过 SMS 收到关键字“位置”后,接收者的位置将发送给 SMS 的发送者。 例如:假设有 A、B、C、D...
  • 2、查看内部存储,空间几乎要耗尽了,这时的手机速度会变得极,无法安装应用,甚至应用经常出现闪退,这时我们采用的办法一般是删除各种文件,用手机管家,助手等清理垃圾文件和优化,还有进入APP应用清除缓存等...
  • 欢迎关注我的公众号:CnPeng ,工作日 8:08 准时更新。 在 Android 手机中,除了标准的 APK 应用程序之外,还有各大厂商推出的...快应用本质上也是一种小程序,也具有无需安装、触手可及、用完即走、无需卸载的特...
  • 应用软件市场竞争日趋白热化 屏蔽信息...手机越用越……  不少智能手机用户可能都遇到过以上情形。不过,大家想不到,在这些看似技术问题背后,或许暗藏着应用软件分发领域不正当竞争。  今年1月1日,新修订的反不
  • 刚开始学Android应用开发时,按照书本的指示,一直使用eclipse+ADT+虚拟的Android设备来调试程序的,怎么用,怎么觉得不爽。很,感觉测不出真机的效果。。 今天学会了如何在真机上调试程序,特分享一下:...
  • 最近使用HBuilder生成一个APK安装包,安装完成,运行想看看资源文件放在什么地方。...如果删除资源文件,点击应用就将重新生成(这也就是为什么第一次启动应用感觉那么,因为要将资源文件解压,然后在利用webvie
  • docker安装: ...docker.dmg下载问题:电脑连接手机热点进行下载。 docker初体验-hello world: ·docker pull Name; ------拉取镜像 ·docker images ; -------查看本季所有镜像 拉取hel...
  • 安装SDK后)大家在eclipse上安装开发手机应用的插件ADT, 都选择的是help-> install new software 来进行安装,但是这种方法,需要联网跟新,在没有网络的情况下或者是网络很的情况下,都会安装失败。...
  • 未来的应用程序

    2018-07-17 21:57:48
    应用程序,指的是用户直接使用的程序,简单的说就是手机上的App,电脑上的软件。一开始,应用程序通常都运行在操作系统上,这样的应用程序又叫做“源生应用程序”。但是,源生应用程序有一个很严重的缺点,就是需要...
  • 荣耀8 google play store 安装程序

    千次阅读 2017-03-10 22:03:12
    1.在华为应用市场下载google play store 并且安装安装完打开时会一直出现核查信息之类的字样,不用理,直接重启,再次打开稍等片刻,就出现google 账户一类的信息,后续步骤有点,但是可以过。  2.打开google ...
  • 可道云真的很强大,安装包很小,功能却很齐全,还可以自定义轻应用如果有手机客户端就更好了研究了一下,可道云根目录放到外置存储设备(移动硬盘)会更合适,改路径的方法下面有提到上传文件时一个文件会在用户目录...
  • PP手机助手

    2012-12-05 18:20:36
    2、还在为应用下载速度发愁吗?有了PC版再也不是问题。PC版独有的突破功能,集成苹果官方正版资源,并推荐最新限时免费资源,全部一键下载安装,体验飞速下载。 3、手机与本地资源,均可以直接升级到正版或破解版...
  • 智能手机已经在人们生活中得到广泛的应用,很多应用程序可以在手机上进行安装运行。应用之一就是人们获得外界温度,目前多数方式是通过应用程序,直接或者间接地通过国家气象局获得外界温度。但是由于数据更新较...
  • 1、安装应用够用就好,如果你不是玩机发烧友,装几个必备的应用和一些自己需要的应用即可,无需安装过多的程序,否则会导致手机,尤其是一些内存较小的机型。    2、应用安装较多的时候,适当的进行删减,...
  • 你工作几年了,经验丰富,但是为什么你的应用卡的? Android手机开发语言是java(kotlin也是java的封装),Java本身有很好的内存管理机制——GC。但是GC经常遇到不可恢复的内存,即内存泄漏和内存抖动,结果可能是...
  • 前言 activity启动的流程分为两...我们手机的桌面是一个叫做Launcher的Activity,它罗列了手机中的应用图标,图标中包含安装apk时解析的应用默认启动页等信息。在点击应用图标时,即将要启动的App和Launcher、AMS、Zy
  • 现在无线网络的应用也越来越广泛了,特别是智能手机的普及,手机流量费用居高不下,在笔记本电脑能连接网络的情况下,安装一个共享wifi软件,是一个不错的方案。我在公司的笔记本可以连无线网络,但是连接的时候需要...
  • 一款基于Vue2.0高仿微信App的单页应用 概述 本项目是使用Vue.js2.0框架,搭配库 ,模仿微信app的交互,做到以假乱真的效果。 ...手机预览 首选红色,加载较快 蓝色为备用地址,加载较 ...3.安装依赖(安装的话建议
  • 首先,报错是因为网络问题,但是即便是网络没问题,下载起来也很,所以要手动安装 注:全程需要电脑有梯子 第一步:下载安装Xposed的APK 官网下载安装 下载链接,在官网的链接里找到对应版本下载 直接在模拟器...
  • 大家在eclipse上安装开发手机应用的插件ADT, 都选择的是help-> install new software 来进行安装,但是这种方法,需要联网跟新,在没有网络的情况下或者是网络很的情况下,都会安装失败。这里给大家介绍一种...
  • 手机分区专业指导

    2014-01-22 11:44:56
    B、装到卡上应用多了,担心运行速度,怕影响手机性能!…… 此贴只需使用两个软件即可帮我们这些新手轻松解决这些烦恼,所有操作由用户自己管理,而且是可逆的,方便、易用,请耐心看完此贴,你会发现原来这样简单...
  • 笔记本通过数据线链接手机,充电,链接不稳定,带线使用有束缚。 二、无线流程 通过WiFi连接手机调试Android、iOS应用 - 官方文章 1. 链接手机 将安卓手机通过USB连接到电脑,开启USB调试。 请确认在运行菜单下能...
  • 我的手机助手是根据出现的CD驱动器HiSuite安装,备份中遇到进行到应用备份第一个应用时进度卡死的情况,重启也没有效果,搜索了很多网页后找到解决方案如下: 以华为手机助手官网下载地址为准。安装完后可能会提示...
  • 二、禁止APP开机自动运行的方案使用Android手机用户的朋友应该都有这么一个体会,随着安装应用越多,每次重新开机后自动运行的应用就越多,开机的速度也越来越。也相信有不少用户会遇到这么一种情况,当打开WIFI...
  • 按照书中的步骤安装了安卓虚拟机AVD,但是发现AVD的运行速度非常。索性直接在安卓手机上运行程序。前期的准备使得android运行python程序,详细在http://blog.csdn.net/cfcf0517/article/details/42002485。 测试...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 128
精华内容 51
关键字:

手机安装应用慢