经过了一番折腾,忙忙碌碌了一下午,终于搞明白了Android软件界面嵌入广告的方法,以下我以嵌入有米广告为例小结一下:
步骤一,下载有米广告SDK,将 youmi-android.jar 导入想要嵌入广告的的工程中。
1. 右键您的工程根目录,选择“Properties”
2. 在左面板中选择“Java Build Path”
3. 然后选择“Libraries”标签
4. 点击“Add External JARs„”
5. 选择 youmi-android.jar 的目录路径.
6. 点击“OK”即导入成功
步骤二,在AndroidManifest.xml文件中配置用户权限。
请务必配置以下权限,否则将有可能获取不到广告。
1. android.permission.INTERNET,连接网络权限 INTERNET ,用于请求广告
2. android.permission.READ_PHONE_STATE,用于精确统计用户手机的系统信息
3. android.ACCESS_NETWORK_STATE,用于精确识别网络接入点等信息
4. android.permission.ACCESS_COARSE_LOCATION,有助于精准投放地域广告以及帮助统计使用应用程序的用户的地区分布情况
5. android.permission.WRITE_EXTERNAL_STORAGE,有助于实现图片资源的缓存,节省流量,并可获得更好的用户体验
请将下面权限配置代码复制到 AndroidManifest.xml 文件中 :
<!-- 必须申明的权限 -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 以下为可选的权限 -->
<!-- 使用GPS获取用户精确定位信息 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- 使用WIFI获取用户精确定位信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
步骤三,在AndroidManifest.xml中添加AdActivity。
AdActivity是广告展示的载体,请在AndroidManifest.xml中添加AdActivity:
<activity android:name="net.youmi.android.AdActivity"
       android:configChanges="keyboard|keyboardHidden|orientation"/>
<meta-data android:name="YOUMI_CHANNEL" android:value="0" />
步骤四,初始化账号信息。
在主Activity的onCreate中调用AdManager.init() 初始化 App ID 、App Secret、请求广告间隔和测试模式等参数(请务必在任意AdView初始化前调用一次)。
//第一个参数为您的应用发布Id
//第二个参数为您的应用密码
//第三个参数是请求广告的间隔,有效的设置值为30至200,单位为秒
//第四个参数是设置测试模式,设置为true时,可以获取测试广告,正式发布请设置此参数为false
AdManager.init(Context context,String appid, String appsec, int intervalSecond, boolean isTestMode);
        !注意:3.04版本开始AdManager.init方法的参数改为五个,加上了Context参数!调试阶段将测试模式设置为true,请将测试模式设置为false后上传至网站等待审核。 !未上传应用安装包、未通过审核的应用、模拟器运行,都只能获得测试广告,审核通过后,模拟器上依旧是测试广告,真机才会获取到正常的广告。
代码如下:
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
     // 应用Id 应用密码 广告请求间隔(s) 测试模式
AdManager.init(this,"537ef88653a2993c", "b9e10bcfe994a9fb", 30, true);
setContentView(R.layout.main);
}
步骤五,使用xml布局嵌入广告
1.在 res/values 文件夹中添加 attrs.xml。如果你没有添加这个文件,那你将不能在 layout 中设置 AdView 的属性。attrs.xml 文件的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="net.youmi.android.AdView">
<!--广告背景颜色[只对文字广告有效](取值范围为#000000----#ffffff) -->
<attr name="backgroundColor" format="color" />
<!--广告文本颜色[只对文字广告有效](取值范围为#000000----#ffffff) -->
<attr name="textColor" format="color" />
<!--广告背景透明度[只对文字广告有效],默认为 255,设置范围0-255 -->
<attr name="backgroundTransparent" format="integer"/>
</declare-styleable>
</resources>  
2.在布局main.xml中嵌入有米广告视图:
以下为一个实例:
<?xml version="1.0" encoding="utf-8"?>
<!-- 需要设置命名空间 :umadsdk -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:umadsdk="http://schemas.android.com/apk/res/com.youmi"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<net.youmi.android.AdView
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
umadsdk:textColor="#ffffff"
umadsdk:backgroundColor="#4076AA"
umadsdk:backgroundTransparent="155"/>
</LinearLayout>
注意: xmlns:umadsdk=”http://schemas.android.com/apk/res/您的应用包名” 这句一定要加上,不然编辑器会提示错误。
3.XML布局代码部分
import net.youmi.android.AdManager;
import android.app.Activity;
import android.os.Bundle;

public class TestAdActivity extends Activity{
    /** Called when the activity is first created. */
// 应用Id 应用密码 广告请求间隔(s) 测试模式
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
     // 应用Id 应用密码 广告请求间隔(s) 测试模式
AdManager.init(this,"537ef88653a2993c", "b9e10bcfe994a9fb", 30, true);
setContentView(R.layout.main);
}

}

最后运行结果如下图所示:
 
 

android软件中加入广告实现方法的更多相关文章

  1. 在android开发中使用multdex的方法-IT蓝豹为你整理

    Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个,因此在Android开发中,需要使用到MultiDex来解决这个问 ...

  2. 快速掌握 Android Studio 中 Gradle 的使用方法

    快速掌握 Android Studio 中 Gradle 的使用方法 Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build ...

  3. 003android初级篇之【转】Android开发中颜色的定义方法

    正好用到颜色的定义,但脑子里没有记住具体,转载一篇加强印象 1.使用Color类的常量,如: int color = Color.BLUE; // 创建一个蓝色 是使用Android提供的颜色 int ...

  4. 如何在Android应用中加入广告

    转载自:http://mobile.51cto.com/aprogram-387527.htm 目前我自己的一款小程序中正进行到加入广告阶段,BAIDU了一下,找到如下好文章,非常有必要共享一下,故转 ...

  5. android应用中去掉标题栏的方法

    现在我坚定的认为写技术博客对自己有很大的帮助,写博客给自己一个学而思的机会. 在Android中去掉标题栏有三种方法,它们也有各自的特点. 1.在代码里实现 this.requestWindowFea ...

  6. 关于android studio中使用class.forname()方法动态获取类实例报NO CLASS FOUND异常的几种处理方法

    最近在做一个项目的时候需要用到反射来回调子类的方法,但是在反射过程中总是在class.forname()方法抛出NO CLASS FOUND异常,经过几部检查,问题解决,在此总结一下引起该问题的原因 ...

  7. Android JNI中C调用Java方法

    背景需求 我们需要在JNI的C代码调用Java代码.实现原理:使用JNI提供的反射借口来反射得到Java方法,进行调用. JNI关键方法讲解. 1. 在同一个类中,调用其他方法 JNIEXPORT v ...

  8. Android开发中退出程序几种方法

    参考:http://johncookie.iteye.com/blog/890734 Android程序有很多Activity,比如说主窗口A,调用了子窗口B,子窗口B又调用子窗口C,back返回子窗 ...

  9. 快速掌握 Android Studio 中 Gradle 的使用方法 [转http://blog.csdn.net/feelang/article/details/41783317]

    Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build工具. Gradle脚本是基于一种JVM语言 -- Groovy,再加 ...

随机推荐

  1. 推进"五通一平":手淘技术"三大容器 五大方案"首次整体亮相 百川开放升级

    在云栖大会上,马云提出五个“新”,新零售.新制造.新金融.新技术和新能源,称将对各行各业造成巨大的影响,成为决定未来成败的关键.而五个新的实现,也必须是各行各业共同推进,整个生态共同受益的结果.继10 ...

  2. Jenkins+Docker持续集成

    本节内容: Jenkins介绍 安装部署Jenkins Jenkins构建maven风格的job Jenkins邮件通知设置 Sonar Jenkins与Docker结合 一.Jenkins介绍 Je ...

  3. KAFKA随机产生JMX 端口指定的问题

    https://blog.csdn.net/weixin_40209426/article/details/82217987

  4. 通过okhttp3下载文件实现APP版本更新

    原文:https://blog.csdn.net/qq_34261214/article/details/77124729 概况 思路是这样的,首先在服务器上把已经签名打包的apk放上去,还有一份TX ...

  5. 【LOJ】#2031. 「SDOI2016」数字配对

    题解 这个图是个二分图,因为如果有一个奇环的话,我们会发现一个数变成另一个数要乘上个数不同的质数,显然不可能 然后我们发现这个不是求最大流,而是问一定价值的情况下最大流是多少,二分一个流量,加上一条边 ...

  6. windows7无声音,提示未插入扬声器或耳机的解决

    windows7无声音,提示未插入扬声器或耳机的解决: http://jingyan.baidu.com/article/358570f6043a85ce4624fc47.html

  7. LoadRunner中的IP欺骗的设置以及误区

    LoadRunner中的IP欺骗的设置以及误区 最近在忙着部署web性能测试的环境后,对IP欺骗进行设置,特地做个笔记,给自己的学习历程留下点足迹. 一. 什么是IP欺骗? 做什么事首先要问个为什么, ...

  8. 【转】 LINUX中IPTABLES和TC对端口的带宽限制 端口限速

    不管是iptables还是tc(traffic control)功能都很强大,都是与网络相关的工具,那么我们就利用这两个工具来对端口进行带宽的限制. 1.使用命令ifconfig查看服务器上的网卡信息 ...

  9. flex布局防止被挤压 flex-shrink: 0

    lex布局非常好用,但在开发过程中可能会碰到的一些坑 1.内容超出容器大致情况是:在一个设置了display:flex布局的大容器A中并排放置两个子容器,并且子容器设置flex:1,子容器中都有一个元 ...

  10. 磁盘清理-安全转移C盘中软件的缓存文件

    C盘飘红啦~~~ 安装软件时,默认会安装到C盘,并不会特意去改(尤其C盘是固态硬盘时).或者,根本就没有给你修改的机会. 可是啊,有些软件的缓存数据目录会比较大,实在太占C盘空间.想移出去,但又不想重 ...