当前位置:  编程技术>移动开发

Android笔记之:App应用之发布各广告平台版本的详解

    来源: 互联网  发布时间:2014-10-15

    本文导语:  Android的广告平台是很多的,各市场对各平台的接受程度是不一样的,Android的开发者如果想集成广告基本要考虑下面两个问题:(1)集成什么广告,会赚钱?(2)集成什么广告,不会被市场拒绝?最终的结果往往是折中的。第一个...

Android的广告平台是很多的,各市场对各平台的接受程度是不一样的,Android的开发者如果想集成广告基本要考虑下面两个问题:
(1)集成什么广告,会赚钱?
(2)集成什么广告,不会被市场拒绝?
最终的结果往往是折中的。
第一个问题是广告平台的判断问题,我没有发言权去评论,本文主要是针对第二个问题展开。
解决方案就是打包应用的不同广告平台版本,本文接下来逐一展开相关话题。

1. 基础
本文其实是针对《Android笔记之:App模块化及工程扩展的应用》和《Android笔记之:App自动化之使用Ant编译项目多渠道打包的使用详解》的一个扩展和应用场景。
所以当然也需要这两篇文章的基础:
(1). Android类库的应用
(2). 因为要结合自动编译各市场版本,所以要更新编译打包的脚本,当然这一步是可选的,如果你愿意手动的话。

2. 广告平台的选择
我以三个平台为例子吧:万普,有米,桔子。
这里我强调的是,我不做广告,我不是要推荐这三个平台,只是以三个平台为例子。同时,我还要骂这些广告平台,拖款,扣量等等。
为什么选择这三个平台?
(1). 万普是单价比较高,应用比较多,收入比较好,很多开发者选择这个平台,但是因为之前推送的用户体验和积分墙问题,被很多市场封杀,很典型。
(2). 有米,宣传做的好,但是普遍反映收入低,banner广告和积分墙是分开的,所以banner部分可以单独拿出来,发布到一些要求严格的市场。
(3). 桔子,暂时也不大了解,有积分墙,貌似打款还算比较积极,很多新平台开始都很积极(随便挑了个新平台陪衬陪衬吧)
有人说,使用聚合呀,能够使用不同的广告平台,我觉得这和本文讨论是完全不同的两个问题,此处省略五千字。

3. 集成架构
在讨论集成架构之前,我们必须讨论一下应用和广告的关联方式:
(1). 多对多的关系,一个广告平台肯定会被嵌入到很多应用中,一个应用往往也需要发布多个广告平台的版本。
(2). 一对多的关系,这一条是和第一条矛盾的,但是,广告平台的sdk本身就是解决了嵌入到各个应用的问题,而且真要考虑多对多的方案,会很麻烦而且无太大价值,所以我们的重点是,一个应用发布多个广告平台的版本。
(3). 先广告,后应用,再后广告平台。意思是,一开始就考虑广告的集成,但是仅仅是空白占位,什么地方显示banner,要不要在哪里显示个应用推荐,留个空方法会接口;然后开发应用;应用完成之后,在考虑如何集成不同的广告平台,根据不同的平台重写不同的广告占位,或者是以不同的广告形式展示广告。
在这几个考虑的前提下,我画出如下的集成架构图:

这个架构图是系列应用的一个例子,不仅每个应用能发布多个广告版本,而且一个基库能封装定制出多个应用,这应该是一个比较典型的例子。

4. 举例
我已经把这个思路应用在world项目中了,参考地址:https://github.com/openproject/world2
而且经过验证,效果还不错。
当然,具体的广告占位和覆写,我就在此略去,你也可以参考上面地址的代码。

5. 编译的问题
针对不同的广告平台,我们需要对自动编译打包脚本做一些修改。
(1). 三层工程使用ANT编译的问题:R.java文件的生成和资源打包的问题。
强调这个问题,主要是提醒注意一下别搞错了。
R.java的生成,三层工程则要生成3次(build.xml):

代码如下:

generating R.java for project to dir gen (using aapt) ...

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   


generating R.java for wap library project to dir gen (using aapt) ...

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   


generating R.java for library to dir gen (using aapt) ...

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   


资源打包也是如此,要特别注意资源文件夹的顺序:
代码如下:

packaging resource (include res, assets, AndroidManifest.xml, etc.) to res.zip ...

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   


(2). 多渠道打包编译脚本(build.sh)
代码如下:

#!/bin/bash

# get the file parent dir
basedir=$(cd "$(dirname "$0")";pwd)

# get project name by dir name
project=$(echo $basedir | awk -F "/" '{print $NF}')
project=${project/.*/}

# enter the right parent dir
cd $basedir

#markets="waps google official appchina gfan qq nduo feiliu 3g 360 zhuamob baidu sohu 163 samsung coolmart meizu moto liantong iandroid imobile xiaomi nearme dev"
markets="mumayi eo dev"
for market in $markets
do
    echo packaging $project.v2.1_$market.apk ...
    sed -i "s/(android:value=)"(.*)"( android:name="UMENG_CHANNEL")/1"$market"3/g" AndroidManifest.xml
    sed -i "s/(android:value=)"(.*)"( android:name="YOUMI_CHANNEL")/1"$market"3/g" AndroidManifest.xml
    sed -i "s/(android:value=)"(.*)"( android:name="WAPS_PID")/1"$market"3/g" AndroidManifest.xml
    ant -Dapk-name=$project -Dapk-version=v2.1 -Dapk-market=$market
done

这两个脚本是放在app.waps下执行,为了通用方便,可以放在某个地方,然后使用ln命令建立一个软链接也可以。

6. 小结
本文可以说是炒剩饭,新瓶装旧酒,所以,很多地方都是一言带过,如果觉得思维有些跳跃的话,呵呵,请阅读前面相关的文章。
本文就是用之前的知识解决把应用打包多个广告平台版本的问题,分享了一些注意的地方,希望有所帮助。


    
 
 

您可能感兴趣的文章:

  • 深入android Unable to resolve target 'android-XX'详解
  • Android工程:引用另一个Android工程的方法详解
  • Android TextView设置背景色与边框的方法详解
  • Android中的android:layout_weight使用详解
  • Android 实现永久保存数据的方法详解
  • 在android开发中尽量不要使用中文路径的问题详解
  • android开发环境搭建详解(eclipse + android sdk)
  • android双缓冲技术实例详解
  • 深入Android开发FAQ的详解
  • Android开发笔记之:一分钟学会使用Logcat调试程序的详解
  • Android对sdcard扩展卡文件操作实例详解
  • Android笔记之:onConfigurationChanged详解
  • Android 动画之AlphaAnimation应用详解
  • 解析后台进程对Android性能影响的详解
  • android ListView 一些重要属性详解
  • 解决Fedora14下eclipse进行android开发,ibus提示没有输入窗口的方法详解
  • Windows下获取Android 源码方法的详解
  • Android selector背景选择器的使用详解
  • Android 动画之RotateAnimation应用详解
  • Handler与Android多线程详解
  • Android获取手机型号/系统版本号/App版本号等信息实例讲解
  • Android在高jar包版本的工程中修改方法
  • 获取android4.0版本sdcard路径示例
  • 1.2版本 Adblock Plus for Android
  • android4.0与2.3版本的TP代码区别解析
  • android 版本检测 Android程序的版本检测与更新实现介绍
  • 解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3