热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DiegoAPP–整体架构介绍

更多创客作品,请关注笔者网站园丁鸟,搜集全球极具创意,且有价值的创客作品1.开发环境RobotCA是采用Eclipse进行开发ÿ

更多创客作品,请关注笔者网站园丁鸟,搜集全球极具创意,且有价值的创客作品



1.开发环境

RobotCA是采用Eclipse进行开发,在DiegoAPP中将整个项目迁移到了Android Studio 3.4开发,有兴趣的同学可以到https://www.diegorobot.com下载试用。
在这里插入图片描述
Android Studio中Gradle 和Gradle Plugin的版本入下图,Gradle和Gradle Plugin的版本非常重要,其他的版本会出现一些编译错误。
在这里插入图片描述
Diego APP支持了Android8.0,Android8.1,Android9.0版本,适应现在主流的Android手机,其他版本的也可以下载最新的Android SDK进行编译,但有由于Android升级过程中接口函数会有所变化,故可能会影响正常的运行,如闪退等异常。
在这里插入图片描述
2.项目架构
Diego APP的目录组织结构符合Android Studio APP的项目组织规范
在这里插入图片描述
com.diegorobot.app是主要的程序目录

Core:主要的控制逻辑代码,包括Robot的控制,Map,导航等。
Dialogs:对话框的逻辑代码,对应res中的对话框资源
Fragments:对应与res中视图的控制代码
Layers:针对需要渲染的层的逻辑代码,现在只有针对激光雷达数据的渲染代码
Views:对应res的视图文件的控制代码
ControlAPP:主要的控制Activity,APP在连接进入控制模式后,运行此Activity
RobotChooser:APP启动时的Activity,用来配置连接信息,显示Robot列表
ToolbarActionItemTarget:Robot列表中的工具条对应的类

2.Build.gradle
App的编译配置文件中定义了App支持的版本,依赖的包等信息,特别是编译时所涉及到包,一定要正确,否则会出现编译异常, build.gradle代码如下

apply plugin: 'com.android.application'android {compileSdkVersion 28buildToolsVersion '28.0.3'defaultConfig {applicationId "com.diegorobot.app"minSdkVersion 26targetSdkVersion 28multiDexEnabled trueversionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}lintOptions {checkReleaseBuilds false// Or, if you prefer, you can continue to check for errors in release builds,// but continue the build even when errors are found:abortOnError false}dexOptions {javaMaxHeapSize "4g"}
}configurations {all*.exclude group: 'org.ros.rosjava_bootstrap', module: 'gradle_plugins'
}
repositories {mavenLocal()mavenCentral()maven {url "https://github.com/rosjava/rosjava_mvn_repo/raw/master"}//maven { url "https://jitpack.io" }}dependencies {implementation fileTree(include: ['*.jar'], dir: 'libs')implementation 'com.android.support:appcompat-v7:28.0.0'implementation 'com.android.support:support-v4:28.0.0'implementation 'com.android.support:design:28.0.0'implementation 'com.android.support:cardview-v7:28.0.0'implementation 'com.android.support.constraint:constraint-layout:1.1.3'implementation 'com.android.support:recyclerview-v7:28.0.0'implementation 'org.ros.android_core:android_core_components:0.4.0'implementation 'com.github.rosjava.android_extras:gingerbread:[0.3,0.4)'implementation 'org.ros.rosjava_messages:tf2_msgs:[0.5,0.6)'implementation 'com.google.code.gson:gson:2.8.5'implementation 'org.apache.commons:commons-lang3:3.9'implementation 'com.squareup.okhttp:okhttp:2.7.5'implementation 'com.github.amlcurran.showcaseview:library:5.4.3'//testCompile 'junit:junit:4.12'
}dependencies {// Required -- JUnit 4 frameworktestImplementation 'junit:junit:4.12'// Optional -- Mockito frameworktestImplementation 'org.mockito:mockito-core:2.27.0'androidTestImplementation 'com.android.support:support-annotations:28.0.0'androidTestImplementation 'com.android.support.test:runner:1.0.2'androidTestImplementation 'com.android.support.test:rules:1.0.2'// Optional -- Hamcrest libraryandroidTestImplementation 'org.hamcrest:hamcrest-library:2.1'// Optional -- UI testing with EspressoandroidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'// Optional -- UI testing with UI Automator
// androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v15'
}configurations.all {resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'resolutionStrategy.force 'junit:junit:4.12'
}

推荐阅读
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
author-avatar
手机用户2502924641
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有