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

【Android 安装包优化】资源混淆 ( 资源混淆效果 | APK 构建流程简介 | 资源 ID 组成 )

文章目录 一、资源混淆效果 二、APK 构建流程简介 三、资源 ID 组成 四、参考资料 一、资源混淆效果 ---- 资源混淆 , 将资源名称与目录进行混淆 , 提高了反编译的难度 , 同时也减小了 APK...文件的大小 ; 下面的 APK 安装文件就是进行资源混淆 , 其中的 r 文件 , 就是混淆后的资源文件 ; 进入 r 文件内部 , 可以看到很多无意义无规则的目录 , 这是混淆后的资源文件 ;...二、APK 构建流程简介 ---- APK 构建流程 官方文档参考 : https://developer.android.google.cn/studio/build 应用模块 ( Application...) 进行编译 , 最后打包成 APK 文件 ; 资源文件在打包时会进行编译 , 将资源文件编译成二进制文件 , 直接打开资源文件都是二进制乱码 ; 三、资源 ID 组成 ---- Android 应用编译时会生成.../studio/build/shrink-code APK 构建流程 : https://developer.android.google.cn/studio/build 参考之前的博客资源 : 【Android

1.4K20

【连载】聊聊 APK(三) —— Android 资源编译的秘密

注意,此处的输入是多个 flat 的文件 和 AndroidManifest.xml,外部资源,输出是只包含资源的 apk(如果你曾经研究过的话,你会发现它的后缀名是 ap_)和 R.java。...资源共享 上面说了 aapt 编译和链接资源的事情,我们还有一个事情没有讲,就是 android.jar 里面共享资源是怎么做的。...首先我要再明确一点,android.jar 只是一个编译用的桩,真正执行的时候,Android OS 提供了一个运行时的库(framework.jar)。因此此处我们可以理解成“骗过”编译器用的文件。...如果你有好奇心,把 android.jar 解压看一看,会发现它也很像一个 apk,只不过它存在的是 class 文件,然后存在一个 AndroidManifest.xml 和 resources.arsc...那么这个包名是哪里来的呢?我们把android.jar改名成android.apk,然后拖到 Android Studio 中,如下图: ?

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    获取jar包内部的资源文件

    通常获取一个资源文件很简单,问题是对于jar包内的资源文件,可能会发生意外。...,假如存在目录library和子文件a.txt,这里会打印出true; 现在把这段代码和资源文件打成myfile.jar并运行在一个myeclipse工程中,我们期望也是打印true。...也就是说,资源文件的使用类无法找到自己,jar包正常的功能将无法提供。这是一个常见的关于jar路径的问题。.../library 显而易见,获取jar包中的文件路径的格式已经变为*.jar!*(除了第一个),这种格式的路径,不能通过new File的方式找到文件。目前本人也没有找到其它处理方式,欢迎评论指点。...在这种情况下,如果想让jar读取到自己的资源文件,可以通过类加载器的getResourceAsStream方法来解决。

    1.7K20

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

    现在是21世纪20年代了,我们还是要学会新的IDE,也是在Android界一统天下的IDE——android studio。...笔者建议,如果你是Android的萌新,还是先去看我的《快速入门Android开发(入门篇)基于Android Studio》这篇文章,如果你已经学会了android studio的使用,想要了解基于eclipse...---- 安装完成,现在我们可以熟悉一下APK安装包导出流程 左上角文件——新建——其他 切记三个API必须一致,否则会报错 接着就几个无脑下一步 点击 完成 然后会卡那么一小会,稍微等1分钟就好...所以要设置一个密码保证自己的源码只能由自己导出成APK文件…….exmmmm我编不下去了,大家脑补一下吧。。。...第四行是有效年限,大家就脑补一下设计者的设计目的吧 最后是导出APK的路径 我选择了桌面 手机上运行后: 结束!!!

    23050

    AndroidStdio1_2

    新Logo Android库在结构上与Android应用模块相同。它可以提供构建应用所需的一切内容,包括源代码、资源文件和Android清单。...不过,Android库将编译到可以用作Android应用模块依赖项的Android归档(AAR)文件,而不是在设备上运行的APK。...与JAR文件不同,AAR文件可以包含Android资源和一个清单文件,这样除了Java类与方法外,还可以捆绑布局和可绘制对象等共享资源。...不过,需要手动编辑相关应用模块的构建路径,并添加JAR文件的路径。 • 库模块可以依赖外部JAR库:可以开发一个依赖于外部库(例如Maps外部库)的库模块。...在这种情况下,相关应用必须针对包含外部库(例如Google API插件)的目标构建。需要注意的是,库模块和相关应用都必须在其清单文件的元素中声明外部库。

    1.8K20

    Gradle依赖管理解析

    依赖仓库 当我们在讨论依赖时,通常指的是外部依赖,例如其他开发者提供的依赖库。手动管理依赖会是一个大麻烦。你必须找到该依赖,下载JAR文件,将其拷贝到项目,引用它。...repositories代码块,如下所示: repositories { jcenter() } 本地依赖 在某些情况下,你可能仍然需要手动下载JAR 文件或原生库。...一个过滤器可以保证只有JAR 文件会被依赖,而不是简单地依赖文件夹中的所有文件: dependencies { 这意味着所有由Android Studio 创建的Android 项目,你都可以将JAR...文件放置在libs 文件夹中,其会自动包含在构建路径和最终的APK 中。...} 3 依赖项目 如果想分享一个使用Android APIs 或Android 资源的依赖库,那么你需要创建一个依赖项目。

    2.1K20

    【Android 逆向】修改 Android 的 apk 安装包内的文件并重新打包 ( apktool_2.6.0.jar 下载和使用 | zipalign 文件对齐 | apksigner 签名 )

    .jar 下载和使用 ---- 在 https://ibotpeaches.github.io/Apktool/ 页面下载最新的 apktool 工具 ; 下载完毕后 , 使用 java -jar apktool..._2.6.0.jar d out_old.apk -o out_old 命令解包 ; 完整命令行输出 : D:\004_Operate\dingxiangjiagu>java -jar apktool_...修改 apk 文件 , 然后使用 java -jar apktool_2.6.0.jar b out_old -o out.apk 命令 , 重新打包 ; 完整命令行输出 : D:\004_Operate...out_zipalign.apk 四、完整命令行输出 ---- D:\004_Operate\dingxiangjiagu>java -jar apktool_2.6.0.jar d out_old.apk...D:\004_Operate\dingxiangjiagu>java -jar apktool_2.6.0.jar b out_old -o out.apk I: Using Apktool 2.6.0

    2.1K30

    java中jar包内的类访问jar包内部的资源文件路径和获得读取资源文件内容的问题

    在大数据开发和java web开发中,我们有时会在程序中读取一些资源文件的内容。...当我们在本地运行调试的时候是没有任何问题的,但是当我们将程序打成jar包上传到集群中后运行时,发现报错:“找不到配置文件的路径”。虽然jar中确实存在配置文件,但是还是读取不到。...相关解决方法可以参考以下相关资料:  java中jar包内的类访问jar包内部的资源文件的路径问题: http://blog.csdn.net/mm_bit/article/details/50372229...获取jar包内部的资源文件: http://blog.csdn.net/luo_jia_wen/article/details/50057191 【解惑】深入jar包:从jar包中读取资源文件: http...://www.iteye.com/topic/483115  jar读取资源配置文件,jar包内包外,以及包内读取目录的方法: http://blog.csdn.net/T1DMzks/article/

    9.4K20

    Android插件化学习之路(一)之动态加载综述

    Android插件化学习之路(二)之ClassLoader完全解析 Android插件化学习之路(三)之调用外部.dex文件中的代码 Android插件化学习之路(四)之使用插件中的R资源...使用动态加载技术可以在Android应用运行时加载外部的dex文件,而通过网络下载新的dex文件并替换原有的dex文件就可以达到不安装新APK文件就升级应用(改变代码逻辑)的目的。...动态加载so库应该就是Android最早期的动态加载了,不过so库不仅可以存放在APK文件内部,还可以存放在外部存储。...Android开发中,更换so库的情形并不多,但是可以通过把so库挪动到APK外部,减少APK的体积,毕竟许多so库文件的体积可是非常大的。...但是Android却很难使用插件APK里的res资源,这意味着无法使用新的XML布局等资源,同时由于无法更改本地的Manifest清单文件,所以无法启动新的Activity等组件。

    1.1K22

    【Android XML】Android XML 转 Java Code 系列之 介绍(1)

    最近在公司做一个项目,需要把Android界面打包进jar包给客户使用。对绝大部分开发者来说,Android界面的布局以XML文件为主,并辅以少量Java代码进行动态调整。...而打包进jar包的代码,意味着无法通过常规的getResources(),getString()等方法来快速的获取资源,因为这些资源都是在apk安装的时候初始化生成的。...结果如下: 1.apk 主体包方案 实现方法:安装一个新的apk,新apk和主apk使用android:sharedUserId连接起来,这样主apk就可以获取新apk的所有res资源。...分析:Android解释因为性能原因,LayoutInflater只支持解析已经预编译在apk包里的xml。所以没办法解析外部导入的xml布局资源。...不支持drawable和values目录下的资源转换。 结论:能减轻手动翻译的工作量,但不能完全解决需求。drawable和string需要自己手动翻译实现。

    2.1K30

    Ant 打包安卓apk(1)-手动档

    将第3步生成的class文件打包生成 .dex 文件  5. 将资源文件打包,生成初始的apk  6....-rf 引用的第三方jar以及其中的资源文件,按照一定的格式放置到apk文件夹中, 一般是src, Followed by the path to a source folder....已签名的 apk 文件的名称 (第一个apk是签名之后的文件, 第二个apk是需要签名的文件) 8....对签名包进行 zipalign 优化 zipalign可以使用 4 字节对齐的方式优化我们签名打包后的 apk 文件中的以二进制格式存放的文件(如资源图片),这样的话,当资源文件被映射到内存时,应用程序访问资源文件的速率就会被大大提升...总结 这篇文章只是说明了一个通用的流程, 很多方面的优化还没有考虑, 比如资源压缩, 代码混淆, 很多地方都是从网上找的, 所以还是不建议这么做, 用 AS 的 gradle构建再发到应用市场才靠谱,

    49420

    Java配置方式读取外部的资源配置文件

    通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: package cn.qlq; import org.springframework.context.annotation.Bean...,相当于一个xml文件 @ComponentScan(basePackages = "cn.qlq") // 配置扫描包 @PropertySource(value = { "classpath:jdbc.properties...public UserDao getUserDAO() { return new UserDao(); // 直接new对象做演示 } } 问题: 1.读取多个配置文件...: 2.如果文件不存在忽略错误: 打开@PropertySource注解源码可以看到: ——————– 配置数据库连接池例子————- 0.目录: db.properties ;;;;;;;;;;;...,相当于一个xml文件 @ComponentScan(basePackages = "cn.qlq") // 配置扫描包 @PropertySource(value = { "classpath:db.properties

    1.2K20

    Gradle for Android简要指南

    编译器转换你的源代码转换成DEX(Dalvik的可执行文件)的文件,其中包括Android设备上运行的字节码,和其他一切编译资源。 2. 该APK包装结合了DEX文件,资源编译成一个单一的APK。...如果您正在构建您的应用程序,你要在外部释放的发行版中,打包签署您的应用程序一起发布密钥库。要创建一个发布密钥库,了解Android Studio中签署您的应用程序。 4....在构建过程的最后,您有一张调试APK或释放您的应用程序,你可以用它来部署,测试或释放到外部用户的APK。...Dependencies 构建系统管理从本地文件系统,并从远程仓库项目的依赖。这可以使您不必手动搜索,下载和你的依赖的二进制包拷贝到你的项目目录 。...APK Splits 构建系统可以自动建立不同的APK,每个只包含代码,需要一个特定的屏幕密度或应用程序二进制接口(ABI)的资源。

    82220

    Android APK编译流程

    /gradlew ***(taskName) 这样Android Studio就会启动构建流程,最终输出一个我们想要的APK。...APK 打包器将 DEX 文件和编译后的资源合并到一个 APK 中。不过,在将应用安装并部署到 Android 设备之前,必须先为 APK 签名。 3....构建流程结束时,您将获得应用的调试版 APK 或发布版 APK,以用于部署、测试或发布给外部用户。...文件和第三方jar或者library通过dx工具打包成dex文件 Android系统的Dalvik虚拟机的可执行文件为DEX格式,所以这里会将上一步中生成的.class文件 和 引用的第三方jar等过程中的...如果没有4字节对齐,就必须显式的读取,这样比较缓慢并且会耗费额外的内存。 参考文章: Android-Studio配置构建 浅谈Android打包流程 apk打包流程 END!

    2K20

    Android查看apk安装包的AndroidManifest.xml文件

    序言 在Android开发中,可能需要从我们自己的应用跳转到别的应用的界面,但是在不知道别的应用的包名以及类名的情况下,是很难做到这一点的,有个最简单的方法就是下载应用的apk文件,然后修改后缀名为zip...AXMLPrinter2.jar是一款常用的apk反编译工具,主要用于反编译apk文件,包括包名、版本号和图标等信息,可以用AXMLPrinter2对androidmanifest.xml反编译进行明文查看...使用方法 1、 下载工具AXMLPrinter2.jar工具 地址:https://code.google.com/archive/p/android4me/downloads 2、 将要查看的AndroidManfist.xml...文件拷贝至与工具相同文件夹下 3、 在当前文件夹打开DOS窗口 4、 执行如下命令 java -jar AXMLPrinter2.jar AndroidManifest.xml >> AndroidManifest.txt...当然,可能有些执行后就会报错 :’java’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 这是因为没有安装Java环境或未配置环境变量导致的。

    20610
    领券