Android Studio一步步教你集成发布适配





开门见山,教你如何配置多渠道一键打包,本教程只符合使用Android Studio的童鞋
1.首先检查本地gradle版本是否是最新的,我建议换成最新的编译版本gradle版本
我用的是gradle-2.10-all
用迅雷下载更快

1
2
3
4
https: //downloads.gradle.org/distributions/gradle-2.10-all.zip
下载其它版本把“2.10”替换成你所需要的版本号就ok啦
下载地址:
https: //downloads.gradle.org/distributions/gradle-2.10-all.zip


下载后解压到任意你所指定的文件夹
2.最后给你的工程指定gradle版本位置,使用本地的,如图所示

01.png

3.我相信java环境都已经配置好了,所以无需再提。本教程并没有去木有配置gradle的环境变量,因为--没用到,至于gradle环境变量配置教程,有需要的童鞋可以看一下

环境变量配置错误,出现问题找我,我也不会认的0 - 0因为本教程,木有去配置gradle环境,木有去配置gradle环境,重要事情说三遍

(gradle环境变量配置)

1
2
3
4
5
6
7
8
9
10
11
WIN下环境变量添加方法:
我的电脑→属性→高级系统属性设置→高级→环境变量,先新建一个用户变量
GRADLE_HOME填入你上面解压知道的文件夹路径,之后在系统PATH变量下添
加GRADLE_HOME/bin;确定保存即可,重启命令行,然后运行
gradle -version查看当前gradle的版本号. 
MAC下添加环境变量:
$ vim .bash_profile 
export GRADLE_HOME=/Applications/gradle-2.3;
export PATH=$PATH:$GRADLE_HOME/bin
检查是否成功
$ gradle -version


开始我们的配置
1.首先是友盟渠道,相信很多公司产品都融入了这个
把[UMENG_CHANNEL]()下面的值改为 [${UMENG_CHANNEL_VALUE}]()

1
2
3
<meta-data    
    android:name= "UMENG_CHANNEL" 
    android:value= "${UMENG_CHANNEL_VALUE}"  />


然后打开app目录下的build.gradle文件配置渠道

1
2
3
4
5
6
7
8
9
10
11
productFlavors {
         abc {
             manifestPlaceholders = [UMENG_CHANNEL_VALUE:  "abc" ]
         }
        baiduyun {
             manifestPlaceholders = [UMENG_CHANNEL_VALUE:  "baiduyun" ]
         }
       wandoujia {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE:  "wandoujia" ]
       }
     }



2.多渠道配置结束,就是这么简单,然后我们打包的时候肯定都希望能够区分每一个包是哪个渠道的,添加下面的代码可以实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
buildTypes {
         release {
             minifyEnabled  true //是否混淆
             zipAlignEnabled  true
             shrinkResources  true //移除未使用的资源文件
             proguardFiles getDefaultProguardFile( 'proguard-android.txt' ),  'proguard-rules.pro'
      applicationVariants.all { variant ->
         variant.outputs.each { output ->
             if  (output.outputFile !=  null  && output.outputFile.name.endsWith( '.apk' )) {
               File outputDirectory =  new  File(outputFile.parent);
               def fileName
               if  (variant.buildType.name ==  "release" ) {
                   fileName =  "appName_v${defaultConfig.versionName}_${packageTime()}_${variant.productFlavors[0].name}.apk"
               else  {
                   fileName =  "appName_v${defaultConfig.versionName}_${packageTime()}_beta.apk" }output.outputFile =  new  File(outputDirectory, fileName)
             }
         }
     }
}
}



然后点击 Sync Now
然后报错了是吧?恩,packageTime()这个方法都还没给你,放在顶部即可

1
2
3
def packageTime() {
     return  new  Date().format( "yyyy-MM-dd" , TimeZone.getTimeZone( "UTC" ))
}


3.Sync Now然后按照下面步骤打包吧

1
2
3
4
5
Build->Clean Project
Build->Rebuild Project
Build->Generate Singned APK...
->next配置你的签名配置->next 解释在下图
->finish



02.png

完了就会在文件夹看到你需要的包了

03.png

自定义配置文件
1.多个自动升级sdk的时候
比如想把包放入360和百度的时候,呵呵,大家都懂的,360是最近才开始必须接入他的升级sdk才能上架的。这里就不吐槽了,公司要求要去上架这些应用商城。
打一次包就能搞定这些接入问题,因为我一开始接入的是友盟自动升级,需求的增加就越来越多,ok开始配置:
`先来做个假设:假设上面的abc包是360升级的,wandoujia是友盟升级的,baiduyun是百度升级的`
定义一个名字为AUTO_TYPE的String类型常量 默认值为umeng放在defaultConfig里面


1
2
3
defaultConfig {
       buildConfigField  "String" "AUTO_TYPE" "umeng"
}


2.然后配置渠道包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
productFlavors {
         abc {
             manifestPlaceholders = [UMENG_CHANNEL_VALUE:  "abc" ]
             buildConfigField  "String" "AUTO_TYPE" "360"
         }
     wandoujia {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE:  "wandoujia" ]
            buildConfigField  "String" "AUTO_TYPE" "umeng"
       }
        baiduyun {
             manifestPlaceholders = [UMENG_CHANNEL_VALUE:  "baiduyun" ]
             buildConfigField  "String" "AUTO_TYPE" "baiduyun"
         }
       
     }


next

1
2
Build->Clean Project
Build->Rebuild Project



3.看看是否生成了这个文件

04.png

文件夹名是根据你productFlavors下面最后一个渠道名生成的

05.png

生成了我们想要的文件,就可以运用了


1
2
3
4
5
6
7
8
9
10
if  (ConstantField.AUTO_TYPE_BAIDU.equals(BuildConfig.AUTO_TYPE)){    
           BDAutoUpdateSDK.silenceUpdateAction( this ); //百度静默更新    
           L.e(TAG, "baidu更新" );
     } else  if (ConstantField.AUTO_TYPE_360.equals(BuildConfig.AUTO_TYPE)){    
           UpdateManager.checkUpdate( this );    
           L.e(TAG, "360更新" );
     } else {    
           UmengUpdateAgent.update( this );    
           L.e(TAG, "umeng更新" );
}



添加是否打印log这个就无需再说了吧,方法类似,把string改成boolean即可
放两个所学习到的文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio是一个强大且常用的集成开发环境(IDE),用于开发Android应用程序。要创建一个新闻发布系统,我会按照以下步骤: 1. 设计应用界面:使用Android Studio的布局编辑器和XML文件创建一个用户友好、美观的界面。这个界面可以包括主页、新闻列表和新闻详情等页面。 2. 创建数据库:使用SQLite或Firebase等数据库技术创建一个用于存储新闻相关数据的数据库。 数据库可以包括新闻标题、内容、作者、发布日期等字段。 3. 实现登录和注册功能:设计用户登录和注册页面,并使用数据库存储用户的账号信息。通过验证用户的身份来保护新闻发布系统的安全性。 4. 实现新闻列表和新闻详情功能:从数据库中读取新闻数据,并以列表的形式呈现给用户。用户点击列表中的新闻标题后可以查看完整的新闻内容和相关信息。 5. 实现新闻发布功能:设计一个表单,让管理员或特定用户可以输入新闻的标题、内容和其他相关信息,并将这些信息保存到数据库中。管理员还可以编辑和删除已发布的新闻。 6. 实现新闻搜索功能:设计一个搜索框,让用户可以根据关键词在新闻列表中搜索相关新闻。搜索结果将根据关键词进行筛选和展示。 7. 实现新闻推送功能:利用Android Studio的推送服务,将推送通知发送给用户,告知他们有新的新闻发布。 8. 基于用户反馈的改进:在发布系统中添加用户反馈的功能,收集用户对新闻的意见和建议,以及对应用的体验提出改进意见。 9. 进行测试和优化:在真机上进行测试,检查系统的性能并修复任何错误或缺陷。优化应用以提高其效率和稳定性。 通过以上步骤,将会开发完成一个功能完备的新闻发布系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值