android 教你如何创建马甲包
看到马甲包 很多人应该都知道 也有很多人不知道 知道马甲包的
看到我的文章的话 那里有不足还请多多指教不知道马甲包的 带你看看一个新的世界
好了 废话不多说 看下面的具体操作来实现
在看具体操作之前 我们应该先知道 什么叫马甲包
在App的开发过程中,经常会遇到产品或者运营的同事提出要制作马甲包的需求;马甲包是指与原APP包除了包名,包id,包名称图标等给用户加以区分的东西,其他功能基本不变的APP包。在开发马甲包之前,一定要和产品或者运营的同事讨论清楚马甲包的具体需求,比如需要制作多少个马甲包,马甲包和主包有哪些差别,之后开发的功能是否需要在马甲包上体现等等,只有了解清楚了需求,才能达到事半功倍的效果。
这也是一个粘来的不知道谁总结的马甲包的概念 不是很能理解 马甲包的实际概念其实和比如app换了一个架子 换了一件衣服 但是实际来说的话 本质还是不变的 只是在原来的基础上加入了一些功能,不说那么多的废话了 说了也感觉跟白说似的
开始上代码
apply plugin: 'com.android.application'android {compileSdkVersion 28defaultConfig {applicationId "jinqiang.zhang.com.majiatext"minSdkVersion 15targetSdkVersion 28versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"manifestPlaceholders = [APP_NAME: 'jinqiang.zhang.com.majiatext'] // 配置主包的应用名称}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}// 马甲包majiabao1.initWith(buildTypes.debug) // 以release的配置来初始化马甲包配置majiabao1 {// 修改马甲包的applicationIdapplicationIdSuffix "com.majiabao1"manifestPlaceholders = [APP_NAME: '第一个马甲包'] // 配置马甲包的应用名称}// 马甲包majiabao2.initWith(buildTypes.debug) // 以release的配置来初始化马甲包配置majiabao2 {// 修改马甲包的applicationIdapplicationIdSuffix "com.majiabao2"manifestPlaceholders = [APP_NAME: '第二个马甲包'] // 配置马甲包的应用名称}} }dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'com.android.support:appcompat-v7:28.0.0'implementation 'com.android.support.constraint:constraint-layout:1.1.3'testImplementation 'junit:junit:4.12'androidTestImplementation 'com.android.support.test:runner:1.0.2'androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'}
按照上面的build.gradle文件里进行配置就行 一定要看好不要少任何一个步骤
在这里配置主包的名称
在下面进行配置马甲包的包名 特别强调debug模式和release模式
建议使用debug模式进行配置
之后的话在清单文件里面把下面的一些代码加入
<applicationandroid:allowBackup="true"android:icon="@mipmap/icon_collection_pre2"android:label="${APP_NAME}"tools:replace="android:label"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"> </application>
配置完成后进行同步
同步完成后打开Build Variants
之后选择
之后进行编译就可以了 就可以看到不一样的app了
android编译的话一般是根据Applicationid进行编译文件
修改资源文件 等字符串资源的话要在src文件夹下创建和你地马甲包一样的后缀名的文件夹
把main文件夹下面的资源文件的文件夹进行修改就可以了
修改完成后记得想运行那个就在Build Variants调到那个马甲包里面就可以了
看一下效果图吧
有的地方我自己也不是很明白 希望有人指点
android 教你如何创建马甲包相关推荐
- Android项目中创建马甲包
创建马甲包的几个好处 提高应用的曝光率,会在应用商店上传多个应用 为不通过的渠道定制不同的应用,即使用不同的包名 不同的开发环境,创建不同的包名,方便开发测试 创建马甲包的步骤 如果我们要创建多个马甲 ...
- android app 马甲包,教你一招APP如何快速定制马甲包
废话不多说,给我上····· 按照本文进行定制马甲包的好处: 马甲包和主包可以进行同步打包,一键生成 不会增加apk的大小,不同的包打进对应的资源 不影响主线的开发(无须拉分支.版本迭代时增加的需求, ...
- android app 马甲包,关于Android多渠道打包和马甲包问题
多渠道打包 最近项目用到多渠道打包,虽然网上又很多资料, 但是我在实际使用的过程中还是遇到了些问题, 在这里记录下,希望能帮助到你! 首先配置你的渠道信息 : 配置渠道信息 这个时候渠道使用的签名配置 ...
- 教你一招APP如何快速定制马甲包
废话不多说,给我上····· 按照本文进行定制马甲包的好处: 马甲包和主包可以进行同步打包,一键生成 不会增加apk的大小,不同的包打进对应的资源 不影响主线的开发(无须拉分支.版本迭代时增加的需求, ...
- 马甲包审核被拒对应的处理方案
写在前面 马甲包审核被拒,目前网上流传最广的就是2.1和4.3,在查看了很多文章之后,从两篇介绍的比较详细的文章中把这两个大礼包对应条款的解决方案,整理出来,为开发马甲包做一个准备,同时分享给大家. ...
- android集成sdk 马甲包,Android配置马甲包
神马马甲包?可以穿的么?人可以穿么? 无鞋... 大家听得最多的还是马甲账号,道理差不多,注册在多账号,注册的人还是你自己. 这里的马甲由宿主APP,通过配置gradle,生成与原APP除了包名.包I ...
- 详述Android马甲包
一.何为马甲.作用 简单的说,一句话就是:APP的小号. 区别: 1. 马甲icon和名字不同,内容和主号基本一样. 2. 有的是针对不同的目标用户,马甲采用主App的部分功能,同时具特别的功能和内容 ...
- Android:如何优雅的开发马甲包?
一.什么是马甲包 马甲包是利用各大市场规则漏洞,通过技术手段,多次上架同一款产品的方法.马甲包和主产品包拥有同样的内容和功能,除了icon和应用名称不能完全一致,其他基本一致. 二.为什么做马甲包,做 ...
- android app套壳马甲开发,Android应用开发最佳实践:马甲包配置管理
在过去的半年时间中,由于行业大环境的恶化,App产品需求一直处于停滞状态,接到的都是市场导向的马甲包需求.随着马甲包的不断增多,build.gradle文件的内容长度开始变得难以接受,于是优化之旅随之 ...
最新文章
- UpdateProgress
- html5开发桌面界面设计,HTML5触摸界面设计与开发
- synchronized的四种用法
- 柯美复印机服务器操作系统,柯尼卡美能达C350复印机网传真设置
- html的标签和标记有啥区别,HTML 元素 b 和 strong 有什么区别?//(强调标签的理解)...
- 拿来就能用!行,这本 Python 书彻底火了!
- 制作 mysql的rpm文件_自制mysql.rpm安装包
- adb查看安卓设备系统Android版本
- Java中的抽象类和接口(interface),abstract关键字的用法
- C语言 动态开辟内存管理
- 使用html-table模块生成html格式
- 文件共享服务器的搭建及调试——SAMBA
- Spring框架帮助文档目录
- ps去水印教程_Adobe Photoshop CS2去除水印方法 PS去水印教程
- 复现SCI图表-ggplot做花瓣图
- 【论文阅读|深读】RolNE: Improving the Quality of Network Embedding with Structural Role Proximity
- android 麻将布局,android麻将小项目1:第一天的一些收获
- init函数及其使用(go语言基础语法)
- STM32F407IGT6与STM32F407ZGT6区别
- 超声波 HC-SR04
热门文章
- 常用的PostMethod及getMethod请求
- linux命令~iconv
- html+css——做一个简单的底部导航栏
- java集合类深度解析
- Java入门第112课——使用Iterator的hasNext方法、next方法遍历集合
- Java将查询到的List,list集合还嵌套一个list集合(把这个list集合和嵌套的list集合合并为一个list集合)
- fedora如何下载软件
- 交换两个变量的值的swap函数
- 单模光电转换器怎么接_单纤光纤收发器a与b怎么放?如何使用光纤收发器的AB端?...
- python版本的判断、选择指南