A. 安卓应用APK文件修改之汉化、美化去广告案例
接上一篇《安卓应用APK文件的解包打包和修改教程》接下来操作简单的三个案例
1)汉化APK软件
在res文件夹中,我们可以看到有很多values-***的文件夹,这就是语言包。values是英文语言包,values-zh是中国地区语言包(包含港澳台及内地),values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。除此以外,其它地区的语言包都是精简的对象,可以不过多了解。
在values文件夹里,通常有arrays.xml、strings.xml等语言文件,要作汉化就要对这些文件进行修改。有时也需要修改其它xml文件,一个一个地认真查看。
2)修改图标标签
每一个APK文件都有一个“图标标签”。将APK程序安装进手机后,在图标下面显示图标标签文字。这个图标标签的内容是可以修改的。在\res\values下找到strings.xml,修改其中的一行:图标标签例如:静音启动同理,如果是窗口小插件,要修改widget_name。
注意:system/app下的apk不宜修改,因为要同时修改对应的odex文件。
【3)去掉APK中的广告】
有很多APK应用都带有广告。为了去掉程序中的广告,要修改main.xml文件与广告有关的内容。在\res目录下找到文件main.xml。通常在\layout目录下,有时也被放在其它目录下。甚至,有时不存在main.xml文件,广告行被放在其它xml文件内。只能细心逐个文件进行查找。无论哪一种情况,查看其内容,你会看到有一项类似的命令如下。这就是广告显示。
android:layout_width=”fill_parent”android:layout_height=”wrap_content”admobsdk:backgroundColor=”#ff000000″admobsdk:textColor=”#ffffffff”admobsdk:keywords=”Android
application”/>将其改为:
android:layout_width=”0.0dip”
android:layout_height=”0.0dip”admobsdk:backgroundColor=”#ff000000″admobsdk:textColor=”#ffffffff”admobsdk:keywords=”Android
application”/>
可以看到,关键是要把fill_parent改为0.0dip,把wrap_content改为0.0dip,其它保持不变即可。这种改法就是不给广告显示空间,当然
你就看不到广告了。
【 4)修改显示电池为1%精度 】
在XT502上,默认显示只有7档:0%,10%,20%,40%,60%,80%和100%。通过修改framework-res.apk,可以改变显示精度。但是在XT502上,实践证明最好可能达到的现实精度只有10%。修改工作如下:
(1)对framework-res.apk进行解包(2)修改和增加电池状态图标(3)修改文件stat_sys_battery.xml(4)修改文件stat_sys_battery_charge.xml(5)打包(6)
提取stat_sys_battery.xml,stat_sys_battery_charge.xml,
resources.arsc和一个图标目录:drawable-mdpi(7)重新装配framework-res.apk
【5)状态栏信息通知文字颜色修改 】
状态栏信息通知文字颜色,是由framework-res.apk文件里res\values下的colors.xml文件控制的,所以我们只需修改colors.xml文件就可以了。另外,此文件还控制下拉栏的文字颜色,可以修改。用文本编辑器打开colors.xml文件,找到
#ff000000
将这句修改为:#ffffffff这状态栏信息通知文字颜色由黑色改为白色。
B. 如何修改apk游戏文件
修改的方法如下参考:
1.将需要修改的apk包复制到apktool路径中。注意:您需要将文件名更改为123apk。
C. 有没有办法在apk中加入广告
在应用中植入广告从而得到收益的两种方法:
一、Admob广告
1.需要注册一个Admob的帐号。激活账号。
2.设置Android应用程序信息,并获得Admob的插入代码。登录Admob帐号后,在主页的左上方(Logo上面)点击“Marketplace(手机广告市场)”,进入页面后,在“Sites&Apps(站点和应用程序)”标签下,点击“Add Site/App”。选择我们熟悉的图标——" Android App ” 。这时会出现需要填写一个“详细信息”,随便填上一些信息。(不要太过在意现在填写的东西,因为这些以后都是可以修改的)。比如“AndroidPackage URL” 。填好详细信息后,点击“继续”,就可以到AdMob Android SDK 的下载页面了。下载这个SDK
3.获取应用程序对应的Publisher ID
4.代码编写
a. 在工程加入一个libs文件夹,将属于用户的admob-sdk 的jar包加入,
b. 在manifest.xml文件中加入广告所需的一些东西
<!-- 最新版需要AdmodActivity注册,旧版是不用,新版如不加将会出问题 -->
<activity android:name="com.admob.android.ads.AdMobActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation|keyboard|keyboardHidden"></activity>
<meta-data android:name="ADMOB_PUBLISHER_ID" android:value="a14ce5ff5288c6d"></meta-data>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-sdk android:minSdkVersion="8" />
c.使用AdView操作 main.xml文件如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:admobsdk="http://schemas.android.com/apk/res/com.csust"
androidrientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/moon"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<com.admob.android.ads.AdView
android:id="@+id/ad"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
admobsdk:backgroundColor="#000000"
admobsdk:textColor="#FFFFFF"
admobsdk:keywords="Android application"
admobsdk:testing="false">
</com.admob.android.ads.AdView>
</LinearLayout>
最后运行程序看看是否有广告
二、图内的有米广告
使用方法与方法一类似
D. admob上可以申请安卓app的广告接入吗
在应用中添加广告当然是可以的, 但是如果你添加了广告sdk,但是审核的时候并没有让审核人员看到广告是会被拒的。 现在这种情况基本上100%悲剧,最近审核的很严。
E. 如何为android在unity 3d设置admob
我试着在我的游戏“薯仔加速器”展示广告,经过努力,我终于想通如何做到这一点,如下步骤:
1.创建一个AdMob的帐户和一个新的Android应用程序,你会得到一个发布者ID。
2.从这里下载“谷歌移动广告Unity Plugin v2.1”unitypackage文件:github.com/unity-plugins/Unity-Admob。
3.打开Unity 3D项目,进入资源 - >导入包 - >自定义包,然后选择你刚刚下载的unitypackage。
4.在你的资源文件夹创建一个名为GoogleAds.cs的文件,复制所有内容。
5.从<Android SDK>/extras/google复制google_play_services,并粘贴到Assets/Plugins/Android文件夹。(如果你不这样做,@integer/google_play_services_version错误或类似的东西)。
6.Mac用户已经安装了Android Studio可以创建符号链接到SDK文件夹使用“ln -s”命令。(例如 – sudo ln -s /Applications/Android\ Studio.app/sdk /Applications/AndroidSDK)。
7.粘贴您的发行商ID的应用程序从步骤1到GoogleAds.cs第29行。
8.将这个脚本作为一个组件相机和构建项目。
F. 如何加入google android adv
1、 下载最新的google admob sdk,
hl=zh-CN&csw=1#incorporating
2、 解压后看到GoogleAdMobAdsSdk-6.4.1.jar
3、 在Android studio里面新建工程,minSdkVersion 最小要是10,就是SDK最低要求必须是2.3.3
4、打开工程文件目录下的libs目录,把文件GoogleAdMobAdsSdk-6.4.1.jar拷贝到此目录
5、在Android Studio编辑器里工程右键,然后按F4,如图:
点+选Jars or directories ,选择工程的libs的GoogleAdMobAdsSdk-6.4.1.jar
选择test23-test23 做同样的操作
6、在Android Studio编辑器里双击src目录下的AndroidManifest.xml,加入 admob的配置:
[html] view plain
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
</application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
7、双击layout下的activity_main.xml 帖入一下代码(就是新建一个layout文件)
[html] view plain
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="你的google admob id"
ads:adSize="BANNER"
ads:loadAdOnCreate="true"/>
</LinearLayout>
8、双击在src目录下的MainActivity 文件,打开后,引用
[html] view plain
import com.google.ads.AdView;
G. 如何在自己的Android APP中加入广告
首先是需要在www.admob.com获得自己的发布者ID并且下载admob的JAR包作为开发使用。
获得ID和JAR包后具体做法如下:
注意:admob要求的最低版本为android1.5,目标编译版本最低为android3.2,即
android:minSdkVersion="3"
android:targetSdkVersion="13"
若targetSdkVersion无法满足,请在项目上点击右键->Properties->Android,选在Project Build Target,然后点击Apply,OK保存即可。
1.首先是将JAR包导入到eclipse
最新版的ADT和SDK在导入JAR包的时候,应该先将JAR包Copy到libs目录下再通过Build Path导入,否则会出现错误。
2.在AndroidManifest.xml中声明com.google.ads.AdActivity
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.adtest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
</application>
注意
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize",如果android:targetSdkVersion低于13这里会报错。
3.申请网络权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
4.以上做好编译无错误后就可以具体写java和布局文件了
广告的显示有两种方式:一是直接在XML中布局显示,二是通过代码动态加入。
方法一:xml中布局显示:
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
ads:adUnitId=“MY_AD_UNIT_ID”
ads:adSize="BANNER"
ads:loadAdOnCreate="true"/>
方法二:通过JAVA代码动态加入:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adView = new AdView(this, AdSize.BANNER,"a151ca4d8cc2454");
LinearLayout layout = (LinearLayout)findViewById(R.id.layout1);
// Add the adView to it
layout.addView(adView);
// Initiate a generic request to load it with an ad
adView.loadAd(new AdRequest());
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
if (adView != null) {
adView.destroy();
}
super.onDestroy();
}
OK,就是这么简单。
转载
H. 如何在Unity3D实现Admob
Unity3d已经支持android,如何在程序里加入admob?
在https://github.com/ 中找到一些方法,并下载了一个unitypackage,把android项目的包名改成unitypackage里的包名。
用eclipse新建一个项目UnityAd,导入admob.jar包的GoogleAdMobAdsSdk-4.1.0.jar和Unity3d程序目录下的
然后编写一个Activity继承UnityPlayerActivity。
Java代码
<!-- base permission -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!-- base permission for location-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- base permission required by chartboost and -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- permission required by mmedia -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.microphone" android:required="false" />
AndroidManifest.xml写成:
Xml代码
android:value="8115000" />
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent"/>
<!-- Amazon Mobile Ads -->
<activity android:name="com.amazon.device.ads.AdActivity"
android:configChanges="keyboardHidden|orientation|screenSize"/>
<!-- InMobi -->
<activity android:name="com.inmobi.androidsdk.IMBrowserActivity"
android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:hardwareAccelerated="true" />
1.找到UnityAd项目目录,把bin文件夹下的com文件夹打成jar包,jar包名为com.hsj.test.jar,将这个jar包拷贝到unity项目目录下的Assets\Plugins\Android\bin中。
2.把UnityAd项目目录下的res文件夹和AndroidManifest.xml文件拷贝到unity项目目录下的Assets\Plugins\Android。
3.在unity项目目录下的Assets\Plugins\Android中新建libs目录,把GoogleAdMobAdsSdk-4.1.0.jar拷贝到libs目录中。
4.在unity3d程序里可以看到。
5.用unity3d Build android 安装包。
6.把安装包放到虚拟机或真机上运行。
希望可以帮助到你,更多unity,就在纳金论坛。
I. 如何在Unity3D实现Admob
如果我们的游戏要实现广告服务就要在Unity使用AdMob,我们必须执行以下步骤(4.6版测试):
1.创建一个文件夹,例如c:\admobunity。
2.我们在C盘中创建下载包的路径。
(2.1) Unityadmob package。下载地址:https://github.com/unity-plugins/Unity-Admob。
(2.2) Admob的示例脚本(admobdemo.cs)。
(2.3) 谷歌播放服务库。
在谷歌播放服务的额外设施库选择下载Android SDK和SDK Manager。
一旦下载库,访问路径,那里已下载SDK包,例如:
adt-bundle/sdk/extras/google/google_play_services/libproject,选择文件夹google-play-services_lib
选择文件夹google-play-services_lib并将其复制到c:\admobunity。
3. 在Unity中打开我们的项目
(3.1)在c:\admobunity中双击GoogleMobileAds.unitypackage。
Unity将询问你是否要在我们的项目导入包,如果是,选择导入。
(3.2)一旦导入,将创建大量文件夹,我们需要在Android进行下一步的插件操作
(3.3)从Windows资源管理器找到Android文件夹,拖动文件夹google-play-services_lib。
在Android文件夹(Unity在我们的项目里),这一步是AdMob至关重要的,因为有互联网接入表现出适用于为我们的游戏所必需的权限。
(3.4)一旦部署之前的步骤,选择文件夹c:\admobunity下的文件夹admobdemo.cs,并将其拖动到在Unity项目的脚本文件夹中。
4.在AdMob创建一个新的横幅,找到我们的游戏,如果我们已经有发表在Google Play或手动添加新的应用程序。创建横幅之后,复制ID用于使用下一步的AdMob。
(4.1)在Unity里双击GoogleMobileAdsDemoScript.cs文件编辑MonoDevelop的文件并更改行号73或98,根据横幅,你在AdMob的选择类型(横幅或插页)并介绍ID码创建活动为我们的游戏所提供的AdMob。
示例:字符串adUnitId = "ca-app-pub-11111111111111/2222222222222";
(4.2)最后,更改保存到文件GoogleMobileAdsDemoScript.cs,在Unity文件中放开游戏主页。
(4.3)Unity发布者运行游戏时将出现横幅,显示删除或隐藏,取决于它(横幅或插页)。
(4.4)如果我们要调用请求,而不显示按钮,只是简单的编辑文件admobdemo.cs和OnGUI(),做如下修改:
using admob;
Admob.Instance().initAdmob("admob banner id", "admob interstitial id");//admob id with format ca-app-pub-2796046890663330/756767388
Admob.Instance().showBannerRelative(AdSize.Banner, AdPosition.BOTTOM_CENTER, 0);
(4.5)如果你需要再提取出横幅,你可以设置一个计时器来运行函数bannerView.Hide();将其隐藏。
请记住,你不能在Unity编辑器里看到横幅,你将不得不导入APK在你的Android设备和测试(带有网络连接启用)。