今天遇到一个需求.获取全部apk的签名的MD5.以下是我使用Java SE实现的一个工具.贴出核心源码.希望给有须要的朋友有所帮助. 界面例如以下: 仅仅须要制定.apk文件所在的文件夹就可以,核心代码例如以下: public class ReadCmdLine { private static MD5Window window; private static String inputPath; public static void main(String args[]) { window =…
版权声明 1.本文版权归原作者所有,转载需注明作者信息及原文出处. 2.本文作者:赵裕(vimerzhao),永久链接:https://github.com/vimerzhao/vimerzhao.github.io/blob/master/android/2020-02-11-apk-size-opt.md. 3.作者公众号:V大师在一号线 .联系邮箱:vimerzhao@foxmail.com. 背景 安装包膨胀的原因 业务的增加.产品的演进是安装包大小增加的本质原因.但是在演进之路上,由于…
版权声明 1.本文版权归原作者所有,转载需注明作者信息及原文出处. 2.本文作者:赵裕(vimerzhao),永久链接:https://github.com/vimerzhao/vimerzhao.github.io/blob/master/android/2020-01-17-opt-apk-size-by-remove-debuginfo.md. 3.作者公众号:V大师在一号线 .联系邮箱:vimerzhao@foxmail.com. 目录: 背景 原理 实现 4.0(华为畅玩4C,版本4.…
转自: https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208008519&idx=1&sn=278b7793699a654b51588319b15b3013&scene=1&srcid=0928jKlaG1Olshvzs6QGA8ex&key=2877d24f51fa53847e850ce3078aa9536aff68a603e36b39bbd456614ed24eadfff5289941af00…
1.首先先科普一下,android为什么需要给安装包签名: 所有的Android应用程序在发布之前都要求开发人员用一个证书进行数字签名,anroid系统不会安装没有进行签名的由于程序.    平时我们的程序可以在模拟器上安装并运行,是因为在应用程序开发期间,由于是以Debug面试进行编译的,因此ADT根据会自动用默认的密钥和证书来进行签名,而在以发布模式编译时,apk文件就不会得到自动签名,这样就需要进行手工签名. 给apk签名可以带来以下好处:    1. 应用程序升级:如果你希望用户无缝升级…
当我们将Android升级功能的中的下载新版本apk文件存放在data/data/xxx.apk位置时,在有的些版本的手机中安装可能会出现安装包解析出错的问题,对于该问题的解决方案是提升该文件的权限. 代码: try { String command = "chmod 777 " + file.getAbsolutePath();                    Runtime runtime = Runtime.getRuntime();                    …
通过远在大洋彼岸的苹果服务器下载东西,确实有够慢啊!AppStore更甚:甚至都经常提示连不上服务器,而有些软件呢,还必须从AppStore下载安装,所以没办法,谁让上了苹果的贼船呢!公司的网速更是不敢恭维,以至于基本上不下东西,除非像这次一样:手贱的把iPhone6升级到8.2.2了,然后Xcode6.1.1真机调试不成了,所以需要下个Xcode6.2.昨天刚更新的Xcode6.2,没有看国内有同胞下载下来没,一般我都是会从官网下载一个保存到百度网盘以供自己和别人使用的.但是迅雷.浏览器下载的…
问题描述:我们通过AppStore下载软件的时候想要把安装包保存下来,但是AppStore安装好之后会自动删除安装包,而且安装路径也很难找到. 解决方案: 一.打开活动监视器 二.找storedownloadd进程,拷贝路径 三.前往文件夹 四.粘贴拷贝的路径,进入文件夹 注意:1.不要过早的把安装包拷贝出来,可能还没有下载完成. 2.不要等到安装完成后再拷贝,因为安装完成后系统会自动删除安装包. 3.所以,一定要在下载完成并且正在安装的过程中把安装包拷贝出来.(考验手速的时候到了) 五.拖到桌…
原地址:http://blog.csdn.net/u012085988/article/details/17393111 1.jdk本人安装的是win32版的(虽然系统是64位的.但听说装64位的导出时会报错).这个很重要,我当时就因为装错了jdk,蛋疼了好久. 2.android sdk.为了防止兼容问题,我直接下载的adt 20131030(Android Developer Tools). 3.unity.本人unity版本为4.1.5f1. 基本就这些东西了.就这三个步骤,折腾了我整整一…
linux version: CentOS 7.5.1804 #进入仓库配置目录 cd /etc/yum.repo.d/ #批量重命名所有文件 for files in `ls *`; do mv ${files} ${files}.bak; done #更新仓库文件指引wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #创建新的仓库文件 vim cloud.repo [c…
Robotium的手机自动化测试,很多都是利用app源代码里的Id定义来开发自动化脚本.而在我开始要为项目中的app写自动化测试脚本的时 候,开发的环境还很不稳定,app也还处于开发的状态中,而且,在需要自己搭建Android整个开发环境的时候,也遇到许多需要耗费很多时间去解决的开 发问题.因此,我觉得,在这种情况下,如果自己的自动化脚本环境能和开发完全独立,那么,应该可以更好地展开自动化脚本的开发.所以,在网上一番探索后, 选择了只需要apk安装包的方法. 当然,这样也会遇到问题,比如,在开发…
RHEL6下获取安装包(RPM)而不安装的方法 有时候我们只能在某个机器上网获得RPM安装包,如何将RPM包在不能上网的内网机器安装,就需要能将安装包下载到本地而不安装,然后再把这些包复制到内网机器,进行安装.另外一个方法是建立镜像服务器,没有测试!下面开始实验,以安装saltstack(salt-master和salt-minion)为例. 1) 首先在能上外网的机器上设置好yum源.我的RHEL6.4已经设置了几个yum源,如下: [rhel6_4-default] name = "Red…
获取离线安装包(方法一) 1. 进入官网:https://www.postgresql.org/ 2. 下载步骤 (1)点击Download (2) 选择安装的服务器的版本  (3)更新yum源 #更新yum源 sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm (4)开始下载postgresql数据库 #…
一.背景和现状 安装包的重要性无需多提,针对安装包质量控制越来越严格和规范,包括证书.文件大小.安装成功率等,APP的证书及混淆是影响APP的安装成功率及代码安全性的很大因素,随着功能迭代,安装包也会随之增大,那么用户下载和app激活转化率就会越低,同时在提交及发布渠道时的错误率也会提升,所以成熟的app会不定期进行安装包瘦身实践,通过对于代码.资源文件等梳理将安装包大小控制在一个合理的值.(比如有app,iOS安装包大小控制在55M,Android安装包大小控制在28M等). 目前组内针对这一…
一.安装包检查的具体包含内容有哪些? 1.安装包检查的一般内容包括: 安装包基本信息检查: 文件大小: xx MB 包名: com.xx 名称:  xx 本次安装包证书与外网证书对比一致性:是 版本号: xx.xx.xx 内部版本号: xx min SDK:xx log是否关闭:是 是否混淆: 是 重复文件个数:xx 项 重复文件大小:xx KB/MB 资源文件空文件列表: 资源文件重复文件列表:(共xx项) 二.获取具体的内容的方案: 具体需要获取的内容如下: (一)关于混淆 1.什么是混淆?…
继上篇博客,我接下来做的是一个九宫格界面,但是对之前的Splash页面我还有要说的就是,当出现网络异常.json解析异常或者没有更新的时候,我们都必须要跳转到我们的主页面,因为Splash页面仅是展示一下我们的开发的品牌和版本信息,我们没有必要因为网络没有接通等一些异常,就让用户使用不了我们的软件.所以我们应该做的 是当出现这些异常的时候,我们要用Toast提示一下用户到底出现了什么异常.所以在之前的代码基础上我增加了红色的代码. 上篇博客当我们检查到新版本的时候,我们来下载这个安装包.以及显示…
参考地址:http://www.cnblogs.com/tc310/archive/2012/12/21/2828450.html 问题描述: Android SDK Manager 无法下载更新,或者更新速度超慢,或者待安装包列表不显示 解决方法: 第一步:修改hosts文件 修改后的hosts 文件内容为: 按 Ctrl+C 复制代码 127.0.0.1 localhost #Google主页 203.208.46.146 www.google.com #这行是为了方便打开Android开发…
我们设置DesiredCapabilities属性值得时候需要设置"appPackage"和"appActivity",如何获取到这两个值呢? 这两个值不是随便瞎写的,需要有正确的值对应,否则就会报错. 进入到 android-sdk-windows\build-tools\19.1.0 相关版本下面,用命令"aapt.exe dump badging LocationOfApp",然后就能查看到该安装包的相关信息, 有appPackage和ap…
需要实现此功能,一般实际开发是在自动版本更新上,当更新完开始自动安装完毕后,删除内存卡里的安装包.实现方式很简单,监听应用广播,获取内存卡下的文件,删除! 1.监听广播 package com.example.a75213.testdownloaddemo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.…
问题描述: Android SDK Manager 无法下载更新,或者更新速度超慢,或者待安装包列表不显示 解决方法: 第一步:修改hosts文件 修改后的hosts 文件内容为: 127.0.0.1 localhost #Google主页 203.208.46.146 www.google.com #这行是为了方便打开Android开发官网 现在好像不VPN也可以打开 74.125.113.121 developer.android.com #更新的内容从以下地址下载 203.208.46.1…
Android App安装包瘦身计划 Android App安装包体积优化: 理由, 指标和可以采用的方法. 本文内容归纳如下图: 为什么要安装包瘦身 安装包需要瘦身吗? 不需要吗? 安装包要瘦身的主要原因就是考虑应用的下载转化率和留存率. 应用太大了, 用户可能就不下载了, 尤其是移动网络或者流量收费的情况下. 再者, 因为手机空间问题, 用户有时候可能需要选择卸载一些应用, 就会先盯上那些占空间大的, 所以应用大小也会也影响留存率. 但现在什么时代了, 到处都是WiFi, 流量包又大又便宜,…
今天将自己开发的Android版本和ios版本的安装包通过生成二维码的方式展示在H5页面上,Android版的比较简单,但是ios的安装包用户必须从App Store(苹果应用市场)中下载安装,所以获取App Store中的下载链接便成了关键,最终通过查询资料得到以下答案: 通用模板网址: http://itunes.apple.com/cn/app/idXXXXXX?mt=8 其中XXXXXX为当前APP在苹果应用市场中的appid  所以我当前的ios链接为:  http://itunes.…
这是一篇教程,写在 win10 版<量子破碎>发售近期. 主要原因:windows 商城的应用下载实在难以忍受...... #######2016-4-9更新####### 4-6号通过旁加载功能虽然实现了安装,但4-8号商城发布了更新,商城不能检测到更新我也无法手动更新 相关工具 win10设备 互联网连接 Metro Sideloader Fiddler [这里使用的是Fiddler 4 ] 下载工具 操作步骤 打开 win10 商城 找到你想要下载的应用详情页面[这里以 淘宝HD 为例]…
如果网上搜索的其他方法解决不了,那么我的这个方法可以试一下. 出现的场景: 先装好了Notes,后准备装Designer. 在装Designer解压包之后,出现下面的错误,不能安装: 您正在试图升级多用户安装.请获取正确的安装包以完成升级. 解决方案: 卸载已经装好的Notes,直接装Designer就可以了.…
有朋友问到如何在一个Windows Installer安装包中获取安装包源路径,就是在安装包运行过程中动态获取*.msi所在完整路径. 这个问题分两类,如果我们的安装包只是一个*.msi安装文件,那么可以通过获取Property OriginalDatabase的值来得到(注意:OriginalDatabase值有效的前提是这是初次安装,不适用修复等模式). 第二种情况是我们将MSI包封装在一个*.exe中,则我们需要通过SETUPEXEDIR这个Property来获取.…
Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装的windows10 + vs2013 with update 4. 2. 安装Java SDK,按照Next一步步安装,此处省略,如下图: 3. 安装Android SDK:因为在线安装的访问google存在问题,而且速度慢,这里采用离线安装包,拷贝Android SDK到指定目录 我这里拷贝到C…
原文:Installshield获取安装包版本的系统变量是IFX_PRODUCT_VERSION Installshield获取安装包版本的系统变量为IFX_PRODUCT_VERSION 当笔记记下来,很简单的一个变量,不过IS里查系统变量是让人头大,知道就是知道,不知道查起来查死人…
背景介绍: 最近在做Robotium自动化测试,使用到solo.takeScreenshot()函数以在测试过程中截图,但此函数需要被测试APP具有<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />权限.在只有被测试APP的apk文件的情况下,修改apk文件后缀名为zip,解压缩后,修改AndroidManifest.xml文件,删除META-INF文件夹,重压缩为apk文…
首先,感谢微信android团队的分享 微信中的资源混淆工具主要为了混淆资源ID长度(例如将res/drawable/welcome.png混淆为r/s/a.png),同时利用7z深度压缩,大大减少了安装包体积,同时也增加了逼格,提升了反破解难度.本文主要是对此做一个简单分析. 写在前言 资源混淆工具大约是在2014年4月实现,并在微信5.4中使用,减少了大约1M的空间.然后在8月在公司内部开源,现以推广到QQ邮箱.QQ空间.手机管家等多个产品中使用. 具体源码与使用方法详细在github中:…
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 使用Android studio发布apk安装包的操作步骤. 开始打包发布apk Build > Generate Signed APK… 如果该项目没有jks签名文件,则需要生成. 如果该项目含有jks签名文件,则导入即可. 生成jks签名文件 选择Create new… Key store path:密钥库(签名)文件的保存路径 Password/Confirm:密钥库(签名库)的密码/确认密钥库密码 ==key== Ali…