当前位置:首页 » 编程软件 » 腾讯广告gradle编译

腾讯广告gradle编译

发布时间: 2023-03-13 15:47:45

A. Gradle--多环境编译打包

前段时间产品经理提了个需求,测试环境,预发布环境,生产环境编译下的app需要在同一步手机同时存在,实现是可以的,但是得有三个环境下的不同applicationId,网络地图key,域名,桌面logo,刚开始是想需要什么环境就换什么类型,很麻烦,每次都要换一次重新编译,我就在想有什么便捷的方法一键设置更换,gradle其中的Flavors功能可以实现我想要的。

这个是主项目中build.gradle中的配置,有三个环境我命名为 xiaoming_test,xiaoming_ready,xiaoming_proct,并有不同的applicationId,BAIDU_MAP_KEY,HTTP_HEAD,HTTP_HEAD_java,app_icon,(解释一下,有两条域名是因为后面后台是用java开发而做的区分),到这里应该大家有疑问,举个栗子,我们一般开发的第三方key是在mainifests进行注册申请的,而我们gradle如何去引用资源的。这里有两种引用方式,直接引用,自定义引用。

引用logo在application的icon属性命名为app_icon,$表示引用这个命名,对应的是gradle的配置。

在mainifests自定义为HTTP_HEAD,value值通过${HTTP_HEAD}引用,getHttpHead()获取自定义注册的域名值。从而实现每次请求对应的域名,只需在gradle里设置。

只需打开studio的BuildVariarts设置,选择需要的环境即可重新编译不同的apk,方便快捷的做到一键设置快速打包。

B. Gradle如何只编译而不打包资源

gradle tasks
看看哪个task是你要的

C. Gradle编译-APK编译过程

在早期的Android设备中(Android5.0以下)都是使用的Dalvik虚拟机,Dalvik支持经过转换的.dex文件。.dex格式是专为Dalvik设计的一种适合内存和处理器速度有限的系统。

但是在Android5.0,google用ART全面取代的Dalvik。Android7.0中又添加了JIT编译器,使得Android性能也有不少提升。

上图为从Android源文件开始,最终到APK的过程。
下面博客文章详细介绍了dalvik虚拟机,可供参考学习。
https://www.cnblogs.com/lao-liang/p/5111399.html

dvm(art)和jvm属于不同的虚拟机平台,不同平台要求执行的文件类型也就不一样
dvm(art)--.dex文件
jvm--.class文件

在编译和生成上
java source --.class文件 ---jvm执行
java source --.class文件 ---.dex文件 --- dvm执行

Android Runtime (ART) 是 Android 上的应用和部分系统服务使用的托管式运行时。ART 及其前身 Dalvik 最初是专为 Android 项目打造的。作为运行时的 ART 可执行 Dalvik 可执行文件并遵循 Dex 字节码规范。

ART 和 Dalvik 是运行 Dex 字节码的兼容运行时,因此针对 Dalvik 开发的应用也能在 ART 环境中运作。不过,Dalvik 采用的一些技术并不适用于 ART。

ART的功能
1.预先 (AOT) 编译
使用ART编译器时,应用程序在安装期间就已经把dex字节码翻译并存储在设备上,运行时,只需要执行这些翻译好的就可以了,因此执行速度也快了不少。
2.垃圾回收方面的优化

3.开发和调试方面的优化

构建流程涉及许多将项目转换成 Android 应用软件包 (APK) 的工具和流程。构建流程非常灵活,因此了解它的一些底层工作原理会很有帮助。

D. 如何实现 Gradle 工程上的增量编译

到此 NDK的配置完成,开始进行 fresco的编译 1.首先从github上下载项目 2.将项目导入到Android Studio中: 选择 Open an exsiting Android Studio Project 选择文件夹下的 build.gradle文件

E. gradle编译war包如何修改生成的目录结构

在build.gradle文件配置这样的话:apply plugin: "war",然后在工程上右击,选择run as->gradle build...,选择clean、build、war这几个task,就可以打war包了,实际上build就能完成打包任务。

F. Shell脚本自动编译打包Gradle项目并docker部署

需要用到2个文件,项目的build.gradle文件和自动化shell脚本(这里我们命名为auto.sh)
一、修改build.gradle文件
新增task配置节,注意build.gradle和Dockerfile在同一目录下

二、新增auto.sh

G. Android插件化突破应用市场无法上广告的问题

先简单的描述一下在广告方面遇到的问题.
开发一款App有了一定的用户量之后通常会想接入第三方广告来实现变现,
然而在很多市场不让这类带广告的App上架,除非接的是他们家的广告.

在这里我只能呵呵了.这点困难就想难倒我们.

那接下来ShowTime.怎么做呢?
没错,就是插件化.
以广点通广告为例
这里我使用的是360开源的 RePlugin ,具体介绍和使用方法请看官方文档.

一. RePlugin插件接入指南
第 1 步:添加 RePlugin Plugin Gradle 依赖
在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加 replugin-plugin-gradle 依赖:

第 2 步:添加 RePlugin Plugin Library 依赖
在 app/build.gradle 中应用 replugin-plugin-gradle 插件,并添加 replugin-plugin-lib 依赖:

接下来您就可以像正常接入广告那样,开发插件。生成出来的是APK,既可以“安装到设备”,又可以“作为插件”使用。

二. RePlugin主程序接入指南
第 1 步:添加 RePlugin Host Gradle 依赖
在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加 replugin-host-gradle 依赖:

第 2 步:添加 RePlugin Host Library 依赖
在 app/build.gradle 中应用 replugin-host-gradle 插件,并添加 replugin-host-lib 依赖:

第 3 步:配置 Application 类

三. 宿主App 调用 插件广告
1.编译插件广告,将生成的xx.apk包重命名xx.jar
将 xx.jar放到宿主App的 assets/plugins 目录下 , Replugin将会自动获取该内置插件

2.处理广点通开屏广告
由于广点通开屏广告的展示点击都由SDK封装处理了.
我们这里采用的方式是,由宿主跳转到插件的闪屏页,在插件中完成请求,展示,点击结束后回到宿主的主页面.
(1)宿主跳转到插件Activity

(2)插件开屏广告请求处理,就按正常的广告逻辑走

(3)插件回到宿主的主页面

(4)宿主的清单文件中添加必要配置,否则广告无反应

注意 : 尽量使宿主和插件的包名一致,已避免广告无收益

3.处理广点通原生广告
广点通原生广告不同于开屏广告,其展示曝光和点击曝光都由自己处理.
我们只能通过反射的方案去请求广告

(1)在插件中先对广告请求做一层封装

(2)宿主中反射LoadManager的requestNativeAD()方法
a.拿到插件的ClassLoader

b.取得需要反射的类

c.由于请求广告的requestNativeAD()方法中有一个参数是接口.
(这里得使用动态代理)
取得被代理接口

d.接下来就是反射请求接口了

注意传入的Context必须是插件的Context
e.在动态代理中取得回调

这里我使用了EventBus将回调的广告传到请求的界面中

点击曝光的反射

四.最后,第一次写文章,欢迎点评
宿主App : https://github.com/AndWong/RePluginHostForAD/tree/master/app
插件App : https://github.com/AndWong/RePluginHostForAD/tree/master/pluginApp

热点内容
为什么开锁人不建议安装密码锁 发布:2025-07-20 22:41:56 浏览:253
phpsocketlisten 发布:2025-07-20 22:39:07 浏览:428
绝地求生未来之役要下什么服务器 发布:2025-07-20 22:34:26 浏览:66
linux对比工具 发布:2025-07-20 22:31:45 浏览:750
音乐缓存在什么文件夹 发布:2025-07-20 22:31:40 浏览:818
ftp服务器怎么清理 发布:2025-07-20 22:08:26 浏览:4
点胶缓存机 发布:2025-07-20 22:06:45 浏览:737
手机存储已损坏 发布:2025-07-20 21:51:00 浏览:54
安卓手机存储卡格式化 发布:2025-07-20 21:18:57 浏览:249
小厂编程 发布:2025-07-20 21:17:24 浏览:798