当前位置: 首页 > news >正文

网站做edi认证有用没网站做谷歌推广有效果吗

网站做edi认证有用没,网站做谷歌推广有效果吗,免费做网站软件下载,分销渠道问题#xff1a;实际业务变化快#xff0c;而工程内各个功能模块耦合度太高#xff0c;不能对功能模块进行快速方便地拆分或组装。团队共同开发中#xff0c;可能一个文件同时被多人修改#xff0c;导致每次更新提交代码都需要消耗大量时间去merge代码。每次修改#xff…问题实际业务变化快而工程内各个功能模块耦合度太高不能对功能模块进行快速方便地拆分或组装。团队共同开发中可能一个文件同时被多人修改导致每次更新提交代码都需要消耗大量时间去merge代码。每次修改都需要进行功能测试和系统测试。目的解决以上问题使项目可以灵活配置功能模块完全解耦实践组件化之路。实现在之前的开发中一个应用程序我们将全部功能模块都写在工程app包中。实践组件化我们将各个功能模块独立出来最终以依赖包的形式整合到app主Module中去。在这里我写了个项目demo简单分了几个功能模块应用结构如下图所示项目组件化结构图说明每一个组件module是一个子工程子工程可以依赖基础库baselibrary可独立运行也可以作为主工程的依赖库。具体实现1配置项目的buildscript如下图所示buildscript配置关于butterknife的配置及用法http://jakewharton.github.io/butterknifebutterknife8支持在lib库中注解。2在主app module gradle中如下配置applyplugin:com.android.applicationapplyplugin:android-aptandroid {compileSdkVersion COMPILE_SDK_VERSION as intbuildToolsVersion BUILD_TOOLS_VERSIONdefaultConfig {applicationId APPLICATION_IDminSdkVersion MIN_SDK_VERSIONas inttargetSdkVersion TARGET_SDK_VERSIONas intversionCode 1versionName 1.0}signingConfigs {debugConfig {storeFile file(***.jks)storePassword ******keyAlias *****keyPassword ******}releaseConfig {storeFile file(******.jks)storePassword ********keyAlias *****keyPassword*******}}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile(proguard-android.txt), proguard-rules.pro}}dependencies {if(!isDebug.toBoolean()) {//各个模块作为库加载compile project(:loginmodule)compile project(:startmodule)compile project(:homemodule)compile project(:msgmodule)}else{//各模块独立运行compile project(:baselibrary)}//routeraptcom.github.mzule.activityrouter:compiler:1.1.7}说明关于activityrouter的配置及使用在后面会说到。3baselibrary作为各个模块共同依赖的基础库其gradle配置如下applyplugin:com.android.libraryapplyplugin:com.jakewharton.butterknifeapplyplugin:android-aptandroid {compileSdkVersion24buildToolsVersion25.0.2defaultConfig {minSdkVersion15targetSdkVersion24versionCode1versionName1.0}buildTypes {release {minifyEnabledfalseproguardFiles getDefaultProguardFile(proguard-android.txt),proguard-rules.pro}}}dependencies {compile fileTree(include: [*.jar],dir:libs)androidTestCompile(com.android.support.test.espresso:espresso-core:2.2.2, {excludegroup:com.android.support,module:support-annotations})compilecom.android.support:appcompat-v7:24.2.1compilecom.jakewharton:butterknife:8.5.1aptcom.jakewharton:butterknife-compiler:8.5.1compilecom.github.mzule.activityrouter:activityrouter:1.2.2}4在子工程模块gradle配置如下(以homemodule为例)if(isDebug.toBoolean()) {applyplugin:com.android.application}else{applyplugin:com.android.library}applyplugin:com.jakewharton.butterknifeapplyplugin:android-aptandroid {compileSdkVersion24buildToolsVersion25.0.2defaultConfig {minSdkVersion15targetSdkVersion24versionCode1versionName1.0testInstrumentationRunnerandroid.support.test.runner.AndroidJUnitRunner}buildTypes {release {minifyEnabledfalseproguardFiles getDefaultProguardFile(proguard-android.txt),proguard-rules.pro}}sourceSets {main{if(isDebug.toBoolean()) {manifest.srcFilesrc/debug/AndroidManifest.xml}else{manifest.srcFilesrc/release/AndroidManifest.xml}}}resourcePrefixhome_}dependencies {compile fileTree(dir:libs,include: [*.jar])androidTestCompile(com.android.support.test.espresso:espresso-core:2.2.2, {excludegroup:com.android.support,module:support-annotations})compile project(:baselibrary)aptcom.jakewharton:butterknife-compiler:8.5.1//routeraptcom.github.mzule.activityrouter:compiler:1.1.7}说明当module单独运行和作为module运行时其activity在manifest中设置也会不同这里可以根据isDebug设置不同的manifest。当分别开发模块时容易出资源重复命名的问题可以在build.gradle中设置resourcePrefix home_通过给模块设置不同的资源前缀可以避免重复命名。Activity跳转问题从上面的配置中可以看到项目引入了aptcom.github.mzule.activityrouter:compiler:1.1.7我们为什么使用ActivityRouter呢当我们把各个功能模块抽成独立的lib的时候各个模块之间难免要进行Activity的跳转及传参。我们不能再像以前那样直接通过startActivity来实现跳转了。关于ActivityRouter的配置及用法https://github.com/mzule/ActivityRouter使用在application中注解Modules({app,homeModule,loginModule,startModule,msgModule})public class XxxxApplication extends Application {}每个module中创建空java类注解Module(homeModule)public class HomeModule{}组件间通信问题不同组件Activity之间传递大量数据时可以通过EventBus来进行传递EventBus原理及用法https://github.com/greenrobot/EventBus编译运行当在gradle.properties中设置isDebugtrue时可以独立运行每个module独立运行调试当设置isDebugfalse可以编译运行整个project注意isDebug变量设置改变时要重新对gradle进行sync。可能遇到的一些问题1如果遇到/com/github/mzule/activityrouter/router/RouterInit.java javaError:(7, 5) 错误: 找不到符号 符号:  变量 RouterMapping等错误请检查app是否把各个Module都依赖进来了。2使用butterknife注解时每个Module会对应生成R2文件即使在base库里注解过了Module也要重新注解组件中不能直接使用。3如果项目中使用到menu注意Overrideprotected void onMenuItemClick(MenuItem item) {//        switch (item.getItemId()) {//            case R2.id.xxx://                Routers.open(mContext,);//                break;//        }if (item.getItemId() R.id.xxx){Routers.open(mContext,);}super.onMenuItemClick(item);}寻找对应的menu id时用if else 代替 switch注itemid 和 R2值不一样和R是一样的。
http://www.zqtcl.cn/news/187682/

相关文章:

  • 郑州做网站软件建设网站培训
  • 做网站卖东西赚钱吗凡科互动官网登陆
  • 免费写作网站通道一通道二通道三免费
  • 腾讯云做网站选哪个网络广告推广员
  • 昆明网站开发哪家好做网站怎么做小图标
  • 泉州做外贸网站成都idc机房托管
  • 南京林业大学实验与建设网站宁波软件开发制作
  • 北京专业网站制作服务郑州有学网站制作
  • 搭建wordpress需要什么样的环境专注软件优化分享的网站
  • 网站备案后 如何建设下载免费ppt模板
  • 重慶网站建设网络服务器可提供的常见服务有什么、什么、什么和什么服务
  • 网站制作有限公司英文都不懂 学网站建设维护难吗
  • 深圳网站建设公司开发制作网站免费的网页网站
  • 开发网站公司德州做网站公司电话
  • 公司门户网站开发个人网站备案成功后怎么做
  • 远程医疗型网站开发三合一网站有必要吗
  • 什么网站是用html做的网站制作成本多少钱
  • 邢台企业网站制作建设wordpress多站点配置教程
  • 湖北省建设厅网站a群诸城网站价格
  • 江苏网站设计如何设置wordpress不自动更新
  • 已经有网站怎么做淘宝客网站建设 国外
  • 百度新闻源网站株洲在线论坛二手市场
  • 招聘做微信公众号网站维护推广网上国网的好处
  • php企业网站通讯录管理系统查找企业资料的网站
  • 专门做娱乐场所的设计网站有虚拟主机wordpress
  • 在线制作书封网站建德建设局官方网站
  • 广州建设手机网站wordpress 外部链接跳转
  • 传播公司可以做门户网站吗深圳常平网站建设制作公司
  • 最好的网站设计公司源码 php多平台网站建设
  • 下载了网站源码施工企业质量管理体系应按照我国