BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #31242同步于 2016/7/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

Android程编译打包的『打包』是什么意思呀?

uuclove1992
2016/7/9镜像同步12 回复
请问一下这个打包是什么意思呀?Android studio里有两个选项:compile和provided,其中compile是jar包编译并打包,provided是jar包编译但不打包,那么这个打包是代表放进apk里边的意思么?但是楼主解压了apk文件并没有找到jar包呀。。。所以请教一下这个打包到底是啥意思?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
sollian机器人#1 · 2016/7/9
apk就是包 ☆爱邮☆ 一生有你
ytinrete机器人#2 · 2016/7/9
compile是指编译期和最后打包都会带着jar包,这个jar包最终会在apk里面。 provided是指编译期会带着jar包一起编译,但是最后这个jar包不会放进apk里面。 另外provided对aar是没用的,只能指jar包
uuclove1992机器人#3 · 2016/7/9
可是通过compile的方式,我没有在apk的解压文件里找到jar包呀 【 在 ytinrete 的大作中提到: 】 : compile是指编译期和最后打包都会带着jar包,这个jar包最终会在apk里面。 : provided是指编译期会带着jar包一起编译,但是最后这个jar包不会放进apk里面。 : 另外provided对aar是没用的,只能指jar包
ytinrete机器人#4 · 2016/7/9
【 在 uuclove1992 的大作中提到: 】 : 可是通过compile的方式,我没有在apk的解压文件里找到jar包呀 。。。。。。 那你是不是很奇怪,不仅没有jar包,你写的源代码也找不到了呀。 他们都藏在.dex文件里面了哦 /w\ 你需要反编译才能找到他们
uuclove1992机器人#5 · 2016/7/9
这样啊。。。那编译期反正也把jar包编译进去了,为什么还要打包到apk里呀 【 在 ytinrete 的大作中提到: 】 : : 。。。。。。 : 那你是不是很奇怪,不仅没有jar包,你写的源代码也找不到了呀。 : ...................
ytinrete机器人#6 · 2016/7/9
【 在 uuclove1992 的大作中提到: 】 : 这样啊。。。那编译期反正也把jar包编译进去了,为什么还要打包到apk里呀 我没有说过“编译进去了”哦,编译是编译,打包是打包,两个是不同的概念 源代码和jar包经过编译之后并不代表就会全部丢进dex文件里面 比如provided就是编译期依赖,被他标明的jar包就不会打进dex文件里面 再比如proguard的minify也有类似的功能 这里说的打包是指经过编译过的代码也一起被打进dex文件里面 这样说你明白了吧?
uuclove1992机器人#7 · 2016/7/9
嘿嘿 也就是说编译的时候只是把源代码和对jar包的依赖关系变成了dex文件,而jar包编译后的文件是可以不打包进去的,比如provided,对么?那jar包没有打包到apk里,apk运行的时候岂不是会找不到依赖的jar包?那岂不是就无法运行了呀~ 【 在 ytinrete 的大作中提到: 】 : : 我没有说过“编译进去了”哦,编译是编译,打包是打包,两个是不同的概念 : 源代码和jar包经过编译之后并不代表就会全部丢进dex文件里面 : ...................
ytinrete机器人#8 · 2016/7/9
【 在 uuclove1992 的大作中提到: 】 : 嘿嘿 也就是说编译的时候只是把源代码和对jar包的依赖关系变成了dex文件,而jar包编译后的文件是可以不打包进去的,比如provided,对么?那jar包没有打包到apk里,apk运行的时候岂不是会找不到依赖的jar包?那岂不是就无法运行了呀~ 感觉你终于听懂了。。。 是啊,所以你看到的几乎都是写compile,否则运行时若是找不到依赖的包就会报ClassNotFond异常。 然而为什么gradle还会提供provided这个功能呢? 这个问题你就自己去找答案吧 另外在gradle之前ant也有这个功能,也就是说这是纯java的东西和Android没关系 所以你可以问暖神~
uuclove1992机器人#9 · 2016/7/9
太感谢啦~ 那个provided看网上是说什么插件化开发之类的,正在研究。。。感觉对这块儿的了解真的太不够了 【 在 ytinrete 的大作中提到: 】 : : 感觉你终于听懂了。。。 : 是啊,所以你看到的几乎都是写compile,否则运行时若是找不到依赖的包就会报ClassNotFond异常。 : ...................