TLDR:如何将proguard映射传递给javac以针对混淆的库进行编译?
这很长,但我不知道如何缩短它:
背景: 我有以下产品设置:
Android Studio项目 - 库模块 - (子)模块核心 - (子)模块A - (子)模块B - (子)模块C - 示例应用程序模块 - ...其他模块
每个库子模块A,B,C在Core中引用类,但A,B,C在它们之间独立.概念上类似于Play服务,其中用户只能拥有代码和所需的子模块.每个库子模块都有外部API,但也有许多内部类.目标是能够将Core,A,B,C作为独立的aar-s进行分发.
目标:将 所有子模块混淆在一起,只留下公开的API,但是以混淆/优化的形式单独打包和分发它们.
问题: 我没有看到如何使用直接的gradle配置.这里需要自定义构建系统,除非有任何已知的解决方案?
这里需要的是:
每个模块的正常构建过程在哪里: - 编译 - >执行所有操作.混淆 - >包
在Core之后编译第一个子模块时,直接设置失败.如果只能将Proguard mapping.txt作为Java编译器的输入传递......但我找不到这样的选项.有任何想法吗?
谢谢!!!
我的目标是拼接多个视频文件中的视频片段。片段由任意开始时间和结束时间定义。最初我想使用像 mp4parser 这样的库来做到这一点,但它只能在同步(IFRAME)点切割流,而我需要更高的精度。
我的场景是从文件中提取编码流 -> 解码 -> 编码 -> 将结果混合到 mp4 文件中。目前,代码通常可以工作,但生成的视频是白噪声。在 Nexus-S 和 Galaxy-S3 上进行了测试。我的代码是几个示例的组合:
我想简化示例,因为我不需要在中间处理帧。我尝试将缓冲区从解码器输出馈送到编码器输入,而中间没有 Surface。整个过程的工作原理是代码运行完成并生成可播放的视频文件。然而文件的内容是白噪声。
这是将帧从解码器提供给编码器的代码片段。有什么问题以及如何使其发挥作用?
...
} else { // decoderStatus >= 0
if (VERBOSE) Log.d(TAG, "surface decoder given buffer "
+ decoderStatus + " (size=" + info.size + ")");
// The ByteBuffers are null references, but we still get a nonzero
// size for the decoded data.
boolean doRender = (info.size != 0);
// As soon as we call …Run Code Online (Sandbox Code Playgroud)