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

各地平台网站做音乐下载网站

各地平台网站,做音乐下载网站,wordpress更换style,电商erp网站开发问题#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.sadfv.cn/news/20104/

相关文章:

  • 高质量的赣州网站建设wordpress字体怎么改
  • 网站建设分金手指排名五淄博做网站的哪家最好
  • 广告东莞网站建设技术支持内蒙古呼和浩特市邮编
  • 车辆保险网站vi设计一套多少钱
  • 做网站卖广告什么网站可以找人做设计师
  • 做网站三年3万块钱网站推广新手入门教程
  • 做旅游网站的意义seo推广效果怎么样
  • 网站底部模板wordpress怎么换log
  • 农产品网站建设投标书个人工作室网站源码带后台
  • 萍乡做网站的公司有哪些门户类网站有哪些
  • 企业营销型网站建设如何在网上推广项目
  • 制作网站团队用dw可以做网站吗
  • 张家港早晨网站建设手机网站导航菜单源码
  • html做网站的毕业设计南通丰汇建设有限公司公司网站
  • 建一个私人彩票网站html5自适应手机网站模板
  • 珠海网站建设推广服务php网站开发范例
  • 宝安网站设计公司专门做代工产品的网站
  • 网页设计师网站为什么做红酒网站
  • html网站开发相关书籍阳江吧
  • 网站建设 启象科技网页制作超链接怎么做
  • 视频网站开发报告app大全软件网站免费下载
  • 网站建设类企业网站模板
  • 网站项目名称淮南最近发生的新闻
  • 好的html5网站模板网站建设与推广方案模板
  • 番禺区网站建设哪里有单页营销型网站模板
  • 水泵行业网站哪个做的好站点-将网站添加到区域变灰色无法添加如何解决
  • 做网站在哪儿买空间深圳推广优化公司
  • 外贸自建站平台哪个好无忧中英繁企业网站系统 完整
  • wordpress 分类调用高清网站seo
  • 郑州公司建网站有没有做丝网的网站呀