详述Android马甲包

本文详细介绍了Android马甲包的制作过程,包括为何使用马甲包(导量、刷榜、测试)以及如何创建马甲包。通过复制项目、修改包名、应用图标、资源文件和文字描述,实现马甲包的定制。同时,文中还提到在AndroidManifest中引用applicationId的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、何为马甲、作用

                     简单的说,一句话就是:APP的小号

                    区别:

                1. 马甲icon和名字不同,内容和主号基本一样。

                2. 有的是针对不同的目标用户,马甲采用主App的部分功能,同时具特别的功能和内容。

                3. 不想让大家知道主App,通常App name/icon/应用截图/开屏图片/关键词/开发者账号都会与主App不同

                    既然马甲跟主开发的app功能差不多,那么为什么要用到马甲呢?个人总结不外乎导量刷榜测试等。

                 导量:(只说搜索导量)目前第三方应用市场上各类app琳琅满目,如何让更多的用户通过搜索找到你的应用嘞。在这个过程中,APP推广者在一开始就该清楚的是,哪些词的流量更高,哪些词的竞争更激烈,哪些词更适合自己的APP等等,只有这样才能使收益最大化。这样蛋疼的推广者会跟你说我们需要咱的app的关键词多一些,咋办嘞?马甲包的作用,上线多几个app跟主app功能一样,描述区别出来就可以了。当然,除了搜索导量,也可以在马甲包里加推送或者各类广告、弹窗来引用户去下载咱的app。

                 刷榜:刷榜常用方式有:1.积分墙。理论上是真实用户,冲榜量级大,可靠后续补量维持;但冲榜和维榜费用高昂,非一般产品所能承受。2.真机。利用真实 机器操作任务,但不能抹机,否则就成假量了,成本相对较低。3.技术流。机刷,服务器控制操作,成本最低。

  

        测试:替主号进行改版测试,将风险最小化。使用主App进行改版测试新会存在很多弊端,马甲的好处是可以随意更改,一旦引发不良影响有而不会造成大的损失。如果测试效果良好,则可以对主App进行相应功能迭代。

 

 

二、创建马甲

这里介绍一下两种方式,第一种是直接复制出来整个项目,修改applicationid和包名、随你改各种资源文件;第二种是同个项目项目夹里多个马甲。

1.

我们要做的是在原来项目的基础复制整个项目然后打开项目副本。

此时的项目和原项目一模一样,切记不要直接在文件夹上动手脚。要用编译软件打开副本中的项目。(android studio)

 

打开软件后我们先改变包id。

打开项目中app包下的build.gradle文件修改下面代码中星号的位置,将其改成马甲包的名字。(也就是改包名,比如说我们要改星号部分,当然改后面都是一样的,只要我们下面引号中的包名和以前不同就可以了)

applicationId "com.*****.wsjr"
  • 1

 

 

然后我们开始修改包名。

修改包名不要从AndroidManifest中修改。首先我们打开包的层级 

这里写图片描述 
在如图所示位置将compact Empty Middle Packages前面的对勾点掉。 
找到星号位置的文件夹,也就是代表你项目名称的文件夹 
这里写图片描述 
点击右键选择refzctor下的rename键将其改为你所需要的项目名。此时下面会弹出更改包名还是文件夹名选择第一个更改包名。 
这里写图片描述 
然后会弹出如下界面 
这里写图片描述 
这里是询问我们是否修改项目中所有用到此包名的地方。因为我的测试项目中只有一个文件所以只出现修改和取消,正常项目可选择Do Refactor All 修改全部。 
到这里还没有结束,我们通常会在自定义View或依赖中引用到包名,所以按快捷键Ctrl+shift+f,查找com.*.wsjr字段逐一将星号部分改成马甲包包名。(如果快捷键不好使可能是因为搜狗输入法等将studio的快捷键占去了,把输入法等正在用的软件快捷键关闭即可) 。运行项目,如果项目还有报错,报错的地方肯定与项目名有关,修改成马甲包的名字即可。 

 

2.

在app的build.gradle文件中添加马甲包的配置

 

[html]  view plain  copy
 
  1.     defaultConfig {  
  2.         applicationId "com.liunian.majiabaotest"  
  3.         minSdkVersion 15  
  4.         targetSdkVersion 26  
  5.         versionCode 1  
  6.         versionName "1.0"  
  7.         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"  
  8.         manifestPlaceholders = [APP_NAME: '主包名称'] // 配置主包的应用名称  
  9.     }  
  10.     buildTypes {  
  11.         release {  
  12.             minifyEnabled false  
  13.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
  14.             signingConfig signingConfigs.releaseConfig  
  15.         }  
  16.         // 第一个马甲包  
  17.         majiabaoOne.initWith(buildTypes.release) // 以release的配置来初始化马甲包配置  
  18.         majiabaoOne {  
  19.             applicationIdSuffix ".majiabaoOne" // 修改马甲包的applicationId,马甲包的application将为com.liunian.majiabaotest.majiabaoOne,即在原来的applicationId后加上配置内容  
  20.             manifestPlaceholders = [APP_NAME: '第一个马甲包'] // 配置马甲包的应用名称  
  21.         }  
  22.     }  


在AndroidManifest.xml文件中引用APP_NAME

[html]  view plain  copy
 
  1. <application  
  2.     android:allowBackup="true"  
  3.     android:icon="@mipmap/ic_launcher"  
  4.     android:label="${APP_NAME}"  
  5.     tools:replace="android:label"  
  6.     android:roundIcon="@mipmap/ic_launcher_round"  
  7.     android:supportsRtl="true"  
  8.     android:theme="@style/AppTheme">  

同步一下项目(sync project),这个时候在Build Variant中就有马甲包对应的版本了,如图:

 

在Build Variant中分别选择release和majiabaoOne,编译运行项目,可以得到两个不同的应用

 

 

修改应用图标icon

Android应用在编译时,会以applicationId后缀编译资源,所有根据不同的马甲包,可以编译不同的资源,如果后缀资源文件中有对应的资源,则将会用后缀资源文件中的资源覆盖主包资源,在src目录下新建一个以马甲包后缀命名的目录,并添加应用icon的资源文件,马甲包即可使用对应的应用图标,如图:

将Build Variant选中为majiabaoOne,运行app,发现马甲包的应用icon已经修改

 

 

修改应用资源文件

根据上面我们知道,我们可以通过配置马甲包资源文件来修改马甲包的外观,比如主题色,应用图标,文字描述,动画效果等等,下面依次举例说明:

修改应用主题色

我们知道,首先,我们在应用的colors.xml中定义应用的主题色,然后所有和主题色相关的颜色都需要引用该主题色,在main/res/values/colors.xml中定义应用的主题色,如下:

 

[html]  view plain  copy
 
  1. <color name="colorPrimary">#3F51B5</color>  
  2. <color name="colorPrimaryDark">#303F9F</color>  


然后在马甲包的资源文件中覆盖掉主包对主题色的定义,在majiabaoOne/res/values/colors.xml中定义主题色,如下:

 

 

[html]  view plain  copy
 
  1. <color name="colorPrimary">#D43C33</color>  
  2. <color name="colorPrimaryDark">#C2352C</color>  


在Build Variant中分别选择release和majiabaoOne,运行如下:

 

修改应用图标的方式前面已经有说过了,参考马甲包应用icon的配置

 

 

修改文字描述

文字描述我们一般定义在res/values/strings.xml中,我们只需要在马甲包中对对应的文字描述进行重定义,即可修改,下面我们将马甲包主页面中的“Hello World!”修改为“我是一个马甲包!”。

在majiabaoOne/res/values/中新建strings.xml,并对描述文字进行重定义,如下:

 

[html]  view plain  copy
 
  1. <string name="string_desc">我是一个马甲包!</string>  

运行效果如下:

 

其他如布局(不建议对布局进行重定义,因为后期维护需要维护两套布局文件,容易出错)、动画样式、文字样式、按钮样式等都可以通过这种方式来对重新定义马甲包的UI。

 

在AndroidManifest引用applicationId

在AndroidManifest中我们经常需要通过applicationId定义一些声明等,比如接入极光推送,我们就需要在Manifest文件中声明一下权限:

 

[html]  view plain  copy
 
  1. <permission  
  2.     android:name="com.liunian.majiabaotest.permission.JPUSH_MESSAGE"  
  3.     android:protectionLevel="signature" />  


前面com.liunian.majiabaotest是applicationId,但是马甲包的applicationId和主包是不一样的,所有不能再Manifest文件中写死,这个时候我们就可以通过引用applicationId来动态定义:

 

 

[html]  view plain  copy
 
  1. <permission  
  2.     android:name="${applicationId}.permission.JPUSH_MESSAGE"  
  3.     android:protectionLevel="signature" />  

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值