经过了一番折腾,忙忙碌碌了一下午,终于搞明白了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. java批量生成excel文件

    1.导入用于操作excel的jar,地址:https://pan.baidu.com/s/1qXADRlU 2.生成excel使用的模版文件,地址:https://pan.baidu.com/s/1c ...

  2. Caffe训练AlexNet网络模型——问题一

    训练AlexNet网络时,出现Check failed:datum_height >= crop_size (size vs. 227)错误,具体如下图所示: 根据提示,问题是crop_size ...

  3. Educational Codeforces Round 9 D - Longest Subsequence

    D - Longest Subsequence 思路:枚举lcm, 每个lcm的答案只能由他的因子获得,类似素数筛搞一下. #include<bits/stdc++.h> #define ...

  4. python和mongodb简单交互

    python和mongodb简单交互 1.安装pymongo: pip3 install pymongo 2.pymongo的简单用法: # /usr/bin/env python3 import p ...

  5. LAMP环境使用Composer安装Laravel

    安装Composer 因为使用的Ubuntu服务器,所以我们使用apt安装: 1 $ sudo apt install composer 安装Laravel 首先创建一个项目目录,进入新目录使用Com ...

  6. IP、TCP和DNS与HTTP的密切关系

    看了上一篇博文的发表时间,是7月22日,现在是10月22日,已经有三个月没写博客了.这三个月里各种忙各种瞎折腾,发生了很多事情,也思考了很多问题.现在这段时间开始闲下来了,同时该思考的事情也思考清楚了 ...

  7. 基于TensorFlow Serving的深度学习在线预估

    一.前言 随着深度学习在图像.语言.广告点击率预估等各个领域不断发展,很多团队开始探索深度学习技术在业务层面的实践与应用.而在广告CTR预估方面,新模型也是层出不穷: Wide and Deep[1] ...

  8. 1015 Reversible Primes (20)(20 point(s))

    problem A reversible prime in any number system is a prime whose "reverse" in that number ...

  9. leetcode x 的平方根 python

     x 的平方根     实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: ...

  10. WinForm 数据库无限填充树目录 treeView

    我自己想的是处理数据库每一条数据,然后来插入子节点的子节点. 奈何没有插入子节点的子节点的办法,百度来百度去,一看全都是递归. 本来我是绝望的, 但是没办法,老板的需求不能驳回啊,于是就来ctrl c ...