目录写在前面背景1系统前期配置1.1烧录1.2配置环境变量1.3使用vnc1.4pip换源和安装1.5pycharm安装2pytorch环境搭建2.1安装miniforge建立虚拟环境2.2torch,torchvision的安装2.3opencv的安装2.4安装tensorrt2.5安装torch2trt3摄像头处理3.1csi摄像头3.2usb摄像头写在前面jetpack5.1使用cuda11和cuda11.4(系统内置了两个),tensorRT8.5.2,内置opencv4.5.4.虽然有一些bug,但整体是个好版本.截止23年4月tensorrt8.5依然是最新的稳定版本,想用trt进
前言目前市面上流行的客户端app的架构基本都是基于MVVM设计的,其实就是为了去更好的使用jetpack组件,mvvm配合jetpack去搭建的话,不仅仅在业务上达到了解耦、方便维护和review的效果,如果配合lifeCycle的使用,更能有效的减少对象生命周期的控制问题导致的内存泄漏。而使用kotlin的初衷,如flow,能很好的替代RxJava和jetpack中的LiveData,如协程能更轻量合理减少的对于线程的创建开销、线程切换负责、线程关闭等一系列繁琐的操作。所以,使用kotlin和mvvm+jetpack组件去搭建的的框架思想源于此。mvvm图解mvvm几乎就是mvc的优化版,将
我们很高兴地宣布正式推出新的.NET社区工具包,现在已经在NuGet上发布了8.0.0版本!这是一个重要版本,包括大量新功能、改进、优化、错误修复和许多反映了全新项目结构和组织的重构,这篇博文将详细描述这些内容。与每个社区工具包版本一样,所有的更改都受到使用该工具包的微软团队和社区其他开发人员反馈的影响。我们非常感谢所有做出贡献并不断帮助.NET社区工具包变得更好的人!.NET社区工具包中有什么?.NET社区工具包是一组适用于所有.NET开发人员的帮助程序和API,独立于任何特定的UI平台。该工具包由Microsoft维护和发布,是.NET基金会的一部分。它也被一些内部项目和收件箱应用程序使用
文章目录一、Room预填充数据简介二、安装DBBrowserforSQLite数据库查看工具三、使用DBBrowserforSQLite新建数据库四、应用中设预填充数据对应的数据库文件1、数据准备2、原执行结果3、预填充数据后的执行结果五、预填充数据报错信息-数据库字段属性必须完全相同六、完整代码示例1、Entity实体类代码2、RoomDatabase类代码一、Room预填充数据简介在Android中使用Room框架,创建SQLite数据库时,有时需要预填充一些数据,这些数据一般都是来自assets资源目录;如果用户首次打开应用,就会从assets资源目录中获取SQLite数据库文件,将该文
文章目录一、Navigation引入二、Navigation特点三、Navigation重要组件四、Navigation使用流程1、创建Fragment2、创建NavigationGraph组件3、处理NavigationGraph组件报错信息"failedtoaddnavigationdependency"4、编辑NavigationGraph组件-创建action跳转5、创建NavHostFragment组件6、在Activity中获取NavController一、Navigation引入Android开发中,最常用的UI架构就是使用一个Activity嵌套多个Fragment,这就需要对
文章目录一、销毁和重建策略二、销毁和重建策略核心要点1、创建Migration迁移类-重点2、配置Migration迁移类3、修改数据库版本号4、修改实体类数据类型三、完整代码示例1、数据库版本3代码示例RoomDatabase数据库类完整代码Student实体类完整代码执行结果2、数据库版本4代码示例RoomDatabase数据库类完整代码Student实体类代码示例执行结果一、销毁和重建策略在Android中使用Room操作SQLite数据库,如果SQLite数据库表修改比较繁琐,如:涉及到修改数据库表字段的数据类型,需要逐个修改数据库值;该环境下使用销毁和重建策略是最佳的方案;销毁和重建
上文,我们通过一个简单的sqlite应用实例,引入了Room,知道了Room使用的便捷和好处。然后用Room的方式,重新实现了应用实例中的场景,在这个过程中,我们结合自己已有的知识体系,从使用代码入手,对Room的实现原理,进行了猜想和简单的验证。Room实现原理,是否真如我们猜想的一样呢?本文,我们一起,一边阅读源码,一边去看一下。1.Room初始化流程源码阅读我们从使用代码入手,从源码探索Room实现的原理。//获取数据库AppDatabasedb=Room.databaseBuilder(getApplicationContext(),AppDatabase
上文,我们通过一个简单的sqlite应用实例,引入了Room,知道了Room使用的便捷和好处。然后用Room的方式,重新实现了应用实例中的场景,在这个过程中,我们结合自己已有的知识体系,从使用代码入手,对Room的实现原理,进行了猜想和简单的验证。Room实现原理,是否真如我们猜想的一样呢?本文,我们一起,一边阅读源码,一边去看一下。1.Room初始化流程源码阅读我们从使用代码入手,从源码探索Room实现的原理。//获取数据库AppDatabasedb=Room.databaseBuilder(getApplicationContext(),AppDatabase
文章目录一、Schema文件简介二、生成Schema文件配置三、生成Schema文件过程1、数据库版本1-首次运行应用2、数据库版本1升级至数据库版本2-第二次运行应用3、数据库版本2升级至数据库版本3-第三次运行应用一、Schema文件简介使用RoomMigration升级数据库,需要根据当前数据库版本和目标版本编写一系列Migration迁移类,并生成一个升级的Schema文件,该文件是json格式的文件,其中包含如下内容:版本信息:包括当前版本和目标版本;创建表语句:包括新增的表的定义和字段信息;删除表语句:包括需要删除的表的名称;修改表语句:包括需要修改的表的名称和需要修改的字段的定义
开启MVVMpattern,ViewModel包含业务逻辑,并在需要更新时通知View。View也会通知它有关用户事件的信息。据我了解,每个模型都应该有一个关联的View模型。所以,如果我们有以下模型:用户帐户我们将拥有以下ViewModel:用户View模型AccountViewModel但是,我发现的所有关于使用MVVM进行数据绑定(bind)的示例都使用单个ViewModel进行布局。最近,谷歌推出了ViewModelArchitectureComponents内的类(class).这让我相信一个Activity会有一个ViewModel可以连接到所有相关的模型:用户/帐户-->