首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android减包 - 使用APK Analyzer分析你APK

本文是对 Analyze Your Build with APK Analyzer 翻译。 Android Studio 2.2包含了APK Analyzer,通过它我们能够直观地看到APK组成。...使用APK Analyzer不仅能够减少你花在debug上时间,而且还能减少你APK大小。使用APK Analyzer,你能够实现: 查看APK中文件绝对大小和相对大小。...(译注:新版APK和旧版APK之间文件大小差异) 这里有3种方法访问APK Analyzer: 拖拽APKAndroid Studio编辑窗口。 切换到Project视图,并且双击APK文件。...Referenced Method列是DEX文件中引用全部方法,它包含了你定义方法、依赖library、定义在标准Java和Android包中方法。...---- 作者简介:damonxia(夏正冬),天天P图Android工程师

2.8K60
您找到你想要的搜索结果了吗?
是的
没有找到

Android应用apk程序签名

Android应用apk程序签名 关于Android应用程序签名主要有以下几个重点: 所有的应用程序都必须签名。系统不会安装任何一个没有签名程序。...可以使用标准工具——Keytool和Jarsigner生成Key并签名apk文件。 一旦为应用程序签名了,一定要使用zipalign工具来优化最终APK包。...这个方法中,首先需要编译出一个未签名apk。然后使用Jarsigner(或类似的工具),用密钥为apk手动签名。如果没有合适密钥,可以运行Keytool来手动生成自己keystore/key。...然后这个Debug key会自动用于apk签名,这样就不需要手动为应用程序包签名了。...Ant用户:如果使用Ant来编译apk文件,则需要在ant命令中添加debug选项来开启Debug签名模式(假设正在使用由android工具生成build.xml文件)。

1.9K10

android开机自启动apk方法

Android开机自启动是通过BroadcastReceiver 注册开机广播来实现 Android接收开机广播,需要用到播广播接收者BroadcastReceiver组件。...具体代码: 1.在配置文件AndroidManifest.xml中向系统注册receiver <intent-filter <action android:name="android.intent.action.BOOT_COMPLETED..." / </intent-filter 2.需要添加相应权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED...,其中 intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);必须要 关键一点是:开机自启动条件是在安装好APK之后需要手动点开软件一次,然后,再次开机才会自启动...以上这篇android开机自启动apk方法就是小编分享给大家全部内容了,希望能给大家一个参考。

4.2K41

Android(三) 基于 eclipse Android配置 APK文件导出

现在是21世纪20年代了,我们还是要学会新IDE,也是在Android界一统天下IDE——android studio。...笔者建议,如果你是Android萌新,还是先去看我《快速入门Android开发(入门篇)基于Android Studio》这篇文章,如果你已经学会了android studio使用,想要了解基于eclipse...Android是如何实现,那么请阅读下篇正文,谢谢!...所以要设置一个密码保证自己源码只能由自己导出成APK文件…….exmmmm我编不下去了,大家脑补一下吧。。。...第四行是有效年限,大家就脑补一下设计者设计目的吧 最后是导出APK路径 我选择了桌面 手机上运行后: 结束!!!

21250

androidapk安装过程

李洋: android-apktool 可以把你apk里面的classes.dex转换为jar格式,然后可以使用Java Decompiler 打开这个jar文件,直接可以看到里面class文件反编译内容...知乎:android项目用eclipse生成apk包,eclipse完成了哪七个步骤? 前两天去面试,面试官问,小菜表示不知道。当时他提示了一个签名。...中文件那样优化它)、AndroidManifest.xml文件(包名就是从这里读取,因为生成R.java文件需要包名)、Android基础类库(Android.jar文件) 【输出】打包好资源(一般在...Android工程bin目录可以看到一个叫resources.ap_文件就是它了)、R.java文件(在gen目录中,大家应该很熟悉了) 【工具】aapt工具,它路径在${ANDROID_SDK_HOME...开发的话) 【输出】未签名.apk文件 【工具】apkbuilder工具 第六步:对未签名.apk文件进行签名 【输入】未签名.apk文件 【输出】签名.apk文件 【工具】jarsigner 第七步

75120

Android之共享已安装apk应用

是否遇到过自己手机上有好应用,但不知道怎么分享给好友时候呢?...作为一名程序员,遇到了这样简单问题,肯定要想办法解决,经过google和百度,查得android上所有已安装应用都会做一个备份,分别存放在三个地方: 1、系统签名软件:/system/app...2、安装到内存上非系统签名软件:/data/app 3、安装到sd卡上非系统签名软件:/mnt/asec/包名-数字/pkg.apk 我们可以使用re浏览器查看和分享这些apk,本人已确认过,...这些应用都是可用,但是这样子相当麻烦,因为你自己必须记得这三个位置,以及这三个位置对应存放应用,否则每次都要把三个文件夹浏览一次,多麻烦呀,程序就是为了让人们偷懒而生,因此废话不多说,下面贴出我自己写可列出所有安装应用并能够通过蓝牙分享代码...packageInfo.applicationInfo.sourceDir); File sourceFile=new File(packageInfo.applicationInfo.sourceDir); //调用android

3.3K50

android gradle如何修改生成apk名字

前言 说实话,我在大法工作时候,就见过Gradle。但是当时我一直不知道这是什么东西。而且大法工具组工程师还将其和Android Studio大法版一起推送,偶一看就更没兴趣了。...甚至针对不同APP Store都有不同版本。在以前ROM环境下,虽然可以配置Android.mk,但是需要依赖整个Android源码,而且还不能完全做到满足条件,很多事情需要手动搞。...本文将详细介绍关于android gradle修改生成apk名字相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细介绍吧。...android gradle修改生成apk名字 Android Studio打包应用默认生成apk名称是:app-release.apk 、app-debug.apk 如果我们要让生成apk名跟我们版本包名...、渠道号有联系的话,那我们就要自定义生成apk名了 需要在build.gradle(Module:app)文件下 android{ } 中添加: android.applicationVariants.all

2.4K20

Android 通过代码安装 APK方法详解

APK 开发中,通过 Java 代码来打开系统安装程序以安装 APK 并不是什么难事,一般 Android 系统都有开放这一功能。...传统通过代码安装APK方式 File apk = new File(...); Uri uri = Uri.fromFile(apk); Intent intent = new Intent()...但现在市面上主流 Android 手机系统版本都已经要高于 7.0 了,这一方法几乎已经没有用了 高版本系统上通过代码安装APK方式 File apk = new File(...); Intent...确实是,但它真正区别并没有在 Java 代码上体现出来。 在高版本系统中,APK 已经不能直接访问其它 APK 私有数据了。 什么是APK私有数据?...通过代码安装 APK方法详解文章就介绍到这了,更多相关android 代码安装apk内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

8.3K21

Android做出IOS风格来!

我们在做webApp 开发时候,经常会碰到下拉菜单,二级甚至三级菜单联动需求。通常我们会用iscroll模拟个可以弹性滚动选择框,然后每次根据选择自己写一些回调逻辑。...Picker.js就是一个高仿 IOS UIPickerView效果筛选器组件,拥有非常流畅体验,由原生 JS 实现,不依赖任何插件和第三方库。...一起来看看它效果。(采用是官方示例) 单列 双列 三列 Picker.js好处就是:安卓4.3+ ,IOS7+ 兼容。...如果我们使用原生DatePicker,流畅度可以保证。但是IOS和安卓UI不统一风格,而且选择内容固定为时间。 安装使用 Picker.js早期版本还依赖zepto.js 和gmu.js。...但移动端上,需要列数应该不会很多 之后便是事件监听处理。

22320

Android系统源码中预置APK方法

如何将无源码google play APK预置进系统(有源码和无源码有一点区别,网上下载google play.apk解压之后里面没有源码)?...(注意下文中Test就是我们要预置到源码中googleplay.apk名字!!...网上下载Google Play Store 4.6.17.apk,名字中含有空格,将空格去掉或者自直接将它重新命名) 1.在 packages/apps 下面以需要预置 APK 名字创建文件夹,以预制一个名为...TestAPK为例 2.将 Test.apk 放到 packages/apps/Test 下面 3.在 packages/apps/Test 下面创建文件 Android.mk,文件内容如下 : LOCAL_PATH...首先在Android源代码目录下build目录下,有个脚本文件envsetup.sh,执行这个脚本文件后,就可以获得一些有用工具: USER-NAME@MACHINE-NAME:~/Android$

4K10

Android ANR分析(trace文件产生流程)

首先收集需要dump trace进程并给对应进程发送dump trace信号 1.当一些带有超时机制系统消息(如:Service创建)判定超时后,会调用系统服务AMS接口,收集ANR相关信息并存档...总结 将am_anr信息输出到EventLog(分析anr问题时先看该log) 获取重要进程信息,java进程,和native进程 将ANRReason和CPU使用情况输出到main_log...接着分析最后一步向收集到进程发送信号 Android5.0之前是dump用SuspendAll线程,收集信息之后用ResumeAll恢复。...Android P 流程: 1.一个进程接收到了SIGQIUT信号时候,SingaCatcher线程WaitForSignal函数会返回接着会调用到HandlerSigQuit()函数。...大致流程(Android5.0之前): checkPoint: 先讲解safePoint,对于ART编译代码,可以定期轮询当前Runtime来确认是否需要执行某些特定代码;可以认为这些轮询时点,就是

97440

Android ANR分析(trace文件产生流程)

ANR信息获取(trace文件产生流程) 首先收集需要dump trace进程并给对应进程发送dump trace信号 接着分析最后一步向收集到进程发送信号 首先收集需要dump trace进程并给对应进程发送...总结; 将am_anr信息输出到EventLog(分析anr问题时先看该log) 获取重要进程信息,java进程,和native进程 将ANRReason和CPU使用情况输出到main_log...接着分析最后一步向收集到进程发送信号 (Android5.0之前是dump用SuspendAll线程,收集信息之后用ResumeAll恢复。...Android P 流程: 1.一个进程接收到了SIGQIUT信号时候,SingaCatcher线程WaitForSignal函数会返回接着会调用到HandlerSigQuit()函数。...大致流程(Android5.0之前): checkPoint: 先讲解safePoint,对于ART编译代码,可以定期轮询当前Runtime来确认是否需要执行某些特定代码;可以认为这些轮询时点,

1.6K30

Android 产生ANR后Trace文件解析

MONITOR状态一般是类同步块或者同步方法造成,而SUSPEND状态是debugger时候会出现,可以用来区别是不是真的是用户正常操作跑出来ANR | group=“main” sCount=1...是线程调度优先级,sched分别标志了线程调度策略和优先级,cgrp是调度数组,handle是线程处理函数地址 | state=S schedstat=( 808116553592 297347340368...970474 ) utm=71464 stm=9347 core=3 HZ=100 接着state是调度状态,utm是线程用户态下使用时间值,stm是内核态下调度时间值,core是最后执行这个线程...大部分情况下trace文件顶部线程一般是ANR元凶,但是也有可能不是应用造成ANR。...死锁和等待也会造成ANR,比如线程状态为MONITOR时候正在执行一个同步块,但是锁却被另外一个线程拿着造成主线程阻塞(等待);死锁分析也是类似,发生死锁线程一般处于MONITOR状态或者WAIT

71430
领券