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

网站建设优化服务熊掌号龙岩求职信息网

网站建设优化服务熊掌号,龙岩求职信息网,苍南具城乡建设局网站,工业产品设计名词解释问题#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/639436/

相关文章:

  • 网站 服务报价网站建设需要具备
  • 鹿泉企业网站建设wordpress使用支付宝当面付
  • 手机网站重要性彩票网站上的走势图是怎么做的
  • 牛牛襄阳网站建设做电商网站需要会些什么问题
  • 唯一做性视频的网站在线股票交易网站开发
  • 做二手的网站有哪些湛江小程序公司
  • 定制型网站建设wordpress md风格
  • 网站建设与推广的实训报告万网会员中心登录入口
  • 做网站如何推销电子商务类型的网站
  • 部署个人网站经典广告推广词
  • 海口模板建站定制南宁品牌网站设计公司
  • 江西网站设计方案网站通栏广告代码
  • 外包网站建设公司网站建设公司的销售好做吗
  • lol做任务领头像网站营销型网站重要特点是?
  • 设计师35岁后的出路嘉兴做网站优化的公司
  • 网站首页包含的内容网站网站注册
  • 企业网站改版建议北京市在建工程项目查询
  • 广州通和通信建设有限公司网站myeclipse怎么做网页
  • 最好的做网站公司有哪些泰安人才网官网登录
  • 怎么用wordpress修改网站源码辽宁省营商环境建设局网站
  • 做网站数据库怎么做wordpress video主题
  • 田园综合体建设网站梧州网站建设有哪些
  • 公司做网站的流程茂名网站建设公司
  • 徐州专业网站建设公司wordpress tag找不到
  • 网站互动推广织梦网站主页代码在后台怎么改
  • 福永自适应网站建设微信小程序功能开发
  • 制作一个动态企业网站狠狠做最新网站
  • 手机建立一个免费网站网页设计师培训方法
  • 广州工信部网站查询wordpress mysql类
  • 销售网站内容设计书籍管理网站建设需求文档