富贵竹三期客户端文档1.0

富贵竹三期文档介绍:

此文档为富贵竹三期(四期)第一个版本的文档,版本号为2.0,补充了出插件的注意事项,请每次出插件时,要仔细阅览此文档!

总体流程图概况:

富贵竹流程图.png

项目下载的SVN地址

Sanderiana:https://172.18.0.18/repos/android/banner/branches/Sanderiana
ISBanner:https://172.18.0.18/repos/android/banner/branches/ISBanner

富贵竹三期插件对外提供的接口:

public interface IStartBanner {

    void init(Context context, String path, String packName);

    void show(Context context, String data);

    void onDestroyWindow();

    void onStop();

    void setDebug(boolean debug);
}

客户端接口说明:

接口 调用时机及作用 参数说明
init [资源初始化方法,在Activity生命周期开始前调用 1.上下文(ApplicationContext);2.res资源路径;3.res资源文件的包名(给GetResource类初始化)
show 展示布局的方法,通过Window显示 1.上下文对象;2.从服务端请求的json数据
onDestroyWindow 销毁Window时的调用 无参数
onStop 解注册广播 无参数
setDebug 设置调试模式,决定是否显示Log boolean类型的参数

服务端Json数据格式说明:

{
  "cnf": {
    "dgfly": {
      "adtype": "bb",
      "name": "",
      "show_type": "bb_inMode_jgz",
      "icon_img": "http:\/\/tang123.oss-cn-shanghai.aliyuncs.com\/cayt\/aaec0be0.jpg",
      "ad_img": [
        "http:\/\/tang123.oss-cn-shanghai.aliyuncs.com\/bb\/aaec0be0\/image-0.jpg"
      ],
      "desc": "",
      "w": 2076,
      "h": 1466,
      "s_dur": 5000,
      "down_url": "http:\/\/baidu.com",
      "dplnk": "",
      "rtp": false,
      "rtp1": false,
      "ia": 0,
      "s_rpt": ["http:\/\/139.196.171.67:5678\/dgfly_rpt.php?act=s&adid=591029c6&cp=AA067&did=869552024567992&aid=4b09c31a51b68e0f"],
      "c_rpt": [
        "http:\/\/139.196.171.67:5678\/dgfly_rpt.php?reqid=1526452646.144426.51d29&act=c&dl_si=0&adci=0&is_wifi=1&ad=AdvTable&u_ad_type=1&adid=aaec0be0&cp=AA067&did=864664036476149&aid=1d2352423ddb4a20"
      ],
      "d_rpt": [],
      "dc_rpt": [],
      "i_rpt": [],
      "a_rpt": [
        "http:\/\/139.196.171.67:5678\/dgfly_rpt.php?reqid=1526452646.144426.51d29&act=a&dl_si=0&adci=0&is_wifi=1&ad=AdvTable&adid=aaec0be0&cp=AA067&did=864664036476149&aid=1d2352423ddb4a20"
      ],
      "o_rpt": [
        "http:\/\/139.196.171.67:5678\/dgfly_rpt.php?act=o&dl_si=0&adci=0&is_wifi=1&ad=AdvTable&adid=aaec0be0&cp=AA067&did=864664036476149&aid=1d2352423ddb4a20"
      ],
      "ad_pack": "banner",
      "ad_ver": "",
      "vsb": true,
      "dlsign": true,
      "logo": true,
      "is_act": "1",
      "ci": "1",
      "in_broser": false,
      "cl": 1,
      "bb_area": true,
      "aicnf": []
    }
  }
}

核心的字段是show_type,根据这个showType来确定需要显示的布局类型,代码如下:

 void buildView(String type) {
        switch (type) {
            case VIDEO_AD:
                mBannerView = new RichRollVideoView();
                break;
            case RichConstant.VIDEO_VIEW_AD:
                mBannerView = new RichVideoView();
                break;
            case RichConstant.BB_BANNER:
            case RichConstant.BB_BANNER_APP:
            case RichConstant.BB_BANNER_WEB:
                mBannerView = new RichFitView(ROLL);
                break;

最终的调用代码是:FloatWindowManager.getInstance().show(this, object);//this就是上一步所生成的View(比如:RichChaferView),object是根据服务端json转换的类

富贵竹三期插件生成注意事项:

1.插件打进去的第三方包,前提是需要知道母包中是否存在,如果存在则不需要;

2.插件中不能包含有android.support.v4包的任何类,如果有,需要删除或者从源代码中扣出来;

3.res资源文件中不能有Android5.0以上的新控件,比如RecyclerVIew,另外这些新控件需要自定义,同时在代码中动态添加;

4.插件中的类不应该有需要在清单文件中注册的类,比如FileProvider,如果有这样的类,就不能生成插件;

5.混淆的类需要搞清除哪些需要混淆,哪些不需要混淆;

6.富贵竹三期的插件应该包含二期的功能,也就是SDK支持下载类的广告,所以生成三期插件时候,应该把downloader.jar这个包也打进去;

7.富贵竹整个插件是采取版本覆盖的方式,所以出最新的插件时候,一定要自己测试下以前插件所包含的内容,另外要确保插件需要的jar包都打进去了,因此测试用例一定要跑;

8.给晓军的资源文件res必须再他提供的基础上增加或替换,图片资源要压缩以便减少插件体积;

富贵竹三期打包的核心代码:

BuildJar {
    //输出目录
    outputFileDir = "./jar"
    //输出原始jar包名
    outputFileName = "lp-depend.jar"
    //输出混淆jar包名
    outputProguardFileName = "lp-depend-proguard.jar"
    //混淆配置
    proguardConfigFile = "proguard-rules.pro"

    //是否需要默认的混淆配置proguard-android.txt
    needDefaultProguard = true
    applyMappingFile = "originMapping/mapping.txt"
    //不需要输出jar的jar包列表,如['baidu.jar','baidu1.jar'...]
    excludeJar = []
    //需要输出jar的包名列表,当此参数为空时,则默认全项目输出,支持多包,如 includePackage=['com/adison/testjarplugin/include','com/adison/testjarplugin/include1'...]
    includePackage = ['com/sanderiana/banner', 'com/aigestudio', 'cn/aigestudio', 'com/tencent', 'com/stkj/launchminilib','de/hdodenhof','com/nostra13']
    //不需要输出jar的类名列表,如['baidu.calss','baidu1.class'...]
//    excludeClass=['android/support/v4/util/ArrayMap.class']
    //不需要输出jar的包名列表,如 excludePackage=['com/adison/testjarplugin/exclude','com/adison/testjarplugin/exclude1'...]
//    excludePackage=['android','com/stkj/test','cn/aigestudio','com/aigestudio']
}

dependencies {
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.0'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.0'
        implementation project(':UI')
    //    implementation files('libs/lp-depend-proguard.jar')
//    implementation files('libs/banner1.jar')
}

富贵竹三期插件混淆的核心代码:

-keep class com.sanderiana.banner.handlers.bean.** { *;}
-keep class com.sanderiana.banner.handlers.bean.**.$*{ *;}
-keep class com.sanderiana.banner.startmanager.StartBanner{ public *; }
-keep class com.sanderiana.banner.startmanager.IStartBanner{ *; }
#-keep class com.sanderiana.banner.startmanager.*{ *; }
-keep class com.sanderiana.banner.brazen.Brazen{ *; }
-keep class com.sanderiana.banner.brazen.*{ *; }

-keep class com.sanderiana.banner.view.** { *; }
-keep class com.sanderiana.banner.api.** { *; }
-keep class com.sanderiana.banner.myswiperl.** { *; }
-keep class com.sanderiana.banner.progressbar.MyProgressBar { *; }
-keep class com.sanderiana.banner.localbcmanager.MyLocalBroadcastManager { *; }
-keep class com.sanderiana.banner.view.adapters.ChaferImageView{ *; }
-keep class com.sanderiana.banner.view.adapters.ChaferLargeImageView{ *; }
-keep class com.sanderiana.banner.view.movieadapter.** { *; }
#微信sdk
-keep class com.tencent.mm.opensdk.** {*;}

-keep class com.tencent.wxop.** {*;}

-keep class com.tencent.mm.sdk.** {*;}

#-keep class com.mediatek.*{ *; }
-keep class com.sanderiana.banner.handlers.api.*{*;}
-keepclassmembers class * {
   public <init> (org.json.JSONObject);
}
-keep public class com.sanderiana.banner.R$*{
public static final int *;
}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

-repackageclasses 'com.sanderiana.banner'

-keepattributes *Annotation*

#-dontwarn sun.misc.**
#-dontwarn okio.**

-keepattributes Signature
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容