rebuild

Android Navigation使用

跟風遠走 提交于 2020-12-05 20:52:53
简介 Navigation导航编辑器旨在简化Android开发中导航的实现,可以帮助我们很好的处理Activity和fragment之间通过FragmentTransaction交互的复杂性,也可以很好的处理页面的转场效果;Deeplink的支持,绕过activity直接跳到fragment;并且传递参数更安全。在Android Studio3.2可以使用。 基本使用 引用相关依赖 implementation "android.arch.navigation:navigation-fragment:1.0.0-rc01" // use -ktx for Kotlin implementation "android.arch.navigation:navigation-ui:1.0.0-rc01" 创建资源文件 创建Fragment文件 class IndexFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.index_fragment, container, false) } override

[CTSC2018]暴力写挂——边分树合并

此生再无相见时 提交于 2020-11-27 06:16:16
[CTSC2018]暴力写挂 题面不错 给定两棵树,两点“距离”定义为:二者深度相加,减去两棵树上的LCA的深度(深度指到根节点的距离) 求最大的距离。 解决多棵树的问题就是降维了。 经典的做法是 边分树合并 。 边分树结构类似0/1 trie 就是把边分树对于每个点拆开路径 合并两棵边分树同时可以得到两个边分树之间点对的路径的信息 感觉有点类似线段树合并。 根据“猫树”思想,两点间的路径一定经过边分树上LCA的那条边。(u,v不相等) 我们考虑在这个LCA处统计贡献 具体地,先对1树进行边分治 每个点初始的边分树是一条链,考虑对每个点构造出这个边分树。 开始只有根。 其实就是记录分治时候是在那个位置。 定义连接分治重心root深度较小的连通块为右部点,另一个为左部点 保存每个点作为左部点还是右部点 在每个之前最后一个加入位置lasi 下面加入左儿子或者右儿子。 在lasi位置保留这个信息vl,vr。初始是-inf 表示子树里所有的真实点在边分治这一层的左部、右部最大值。 左部点贡献权值:dis[x] 右部点贡献:dis[x]-dis[lca] 因为lca一定在右部点。 在第二棵树上枚举LCA z ,子树边分树合并上来(就类似树上的线段树合并) 合并时候max(vl(x)+vr(y)-dis'[z],vr(x)+vl(y)-dis'[z])更新答案。 然后vl(x)=max(vl

bat 批处理切换到当前脚本所在文件夹

℡╲_俬逩灬. 提交于 2020-11-13 01:27:51
bat 批处理切换到当前脚本所在文件夹 切换到当前脚本所在的文件夹 ? 1 cd %~dp0 另外附上一些bat基本内容 —————————————————————————————— 批处理常用命令总结 - 批处理命令简介 目录 echo 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 echo [{on|off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定的文件中。 rem 注释命令,类似于在C语言中的/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。 Rem Message Sample:@Rem Here is the description. pause 暂停命令。运行 Pause 命令时,将显示下面的消息:Press any key to continue. . .(或:请按任意键继续. . .) Sample: @echo off :begin copy G:*.* d:/back echo 请插入另一张光盘... pause goto begin 在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:/back中

OPNET使用问题汇总

让人想犯罪 __ 提交于 2020-10-09 00:13:55
OPNET使用问题汇总 ----<<< Recoverable Error >>> Object repository construction failed due to errors encountered by the binder program (bind_so_msvc) T (0), EV (-), MOD (NONE) ---- Errors reported by the binder program follow (these messages have been saved in (C:\Users\ZAQ\op_admin\tmp\bind_err_1468): D:\CommonSoftware\OPNET\14.5.A\models\std\manet\aodv_rte.opt64.i0.pr.obj : fatal error LNK1112:模块计算机类型“X86”与目标计算机类型“x64”冲突 ---- <<< Program Abort >>> Error encountered rebuilding repository – unable to proceed T (0), EV (-), MOD (NONE) 解决 :只需将仿真软件OPNET Modeler 14.5 (64-Bit)换成 OPNET Modeler 14.5 即可 ----

【Android】Navigation 用法及源码解析

∥☆過路亽.° 提交于 2020-10-02 11:24:46
本文讲解 Navigation 用法,以及 Navigation 源码解析。 官方文档: https://developer.android.google.cn/guide/navigation 一句话介绍 Navigation :Navigation 是指支持用户导航、进入和退出应用中不同内容片段的交互。 Android Jetpack 的 Navigation 组件可帮助您实现导航,无论是简单的按钮点击,还是应用栏和抽屉式导航栏等更为复杂的模式,该组件均可应对。 注:本文使用 Kotlin 编写。 一、基本用法 使用 Navigation 在两个 Fragment 之间相互导航 1. 在 res 里新建一个导航图 nav_graph.xml <?xml version="1.0" encoding="utf-8"?> <navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/nav_graph"> </navigation> 这个过程 Android Studio 会自动帮我们导入必要的库 implementation 'androidx.navigation

Android保活策略

好久不见. 提交于 2020-09-26 13:21:12
进程的划分 一、前台进程 相关场景: (1)某个进程持有一个正在与用户交互的Activity并且该Activity正处于resume状态 (2)某个进程持有一个Service,并且该Service调用startForeground()方法使之位于前台运行 (3)某个进程持有一个BroadcastReceiver,并且该BroadcastReceiver正在执行其onReceive()方法 用户正在使用的程序,一般系统是不会杀死前台进程的,除非用户强制停止应用或者系统内存不足等极端情况会杀死 二、可见进程 相关场景: (1)拥有不在前台、但仍对用户可见的 Activity(已调用 onPause()) (2)拥有绑定到可见Activity 的 Service 用户正在使用,看得到,但是摸不着,没有覆盖到整个屏幕,可见进程不包含任何前台组件,一般系统也是不会杀死可见进程的,除非要在资源吃紧的情况下 三、服务进程 相关场景:某个进程中运行着一个Service且该Service是通过startService()启动的,与用户看见的界面没有直接关联 在内存不足以维持所有前台进程和可见进程同时运行的情况下,服务进程会被杀死 四、后台进程 相关场景:在用户按了"back"或者"home"后,程序本身看不到了,但是其实还在运行的程序,比如Activity调用了onPause方法

TMS320F2837x开发例程使用手册

大兔子大兔子 提交于 2020-08-20 08:28:03
基于仿真器的程序加载与烧写 查看仿真器是否安装成功 广州创龙配套多种版本的仿真器的工程仿真配置文件,均在光盘目录下"Demo\NonOS\TargetConfig\ccxml"里面的。 如下TMS320F2837x的开发,均以TL-XDS200仿真器为例。开发板断电,连接好仿真器和开发板,并将仿真器的USB口插进电脑USB插槽,开发板上电。右击计算机图标,点击“设备->通用串行总线控制器”或者“设备->端口”,查看是否有对应的仿真器的选项出现,如有说明仿真器驱动已经正常安装,否则请先正确安装CCS。 图 1 CCS集成开发环境自带XDS100及XDS200系列仿真器驱动。如果仿真器无法正常使用,请检查是否存在驱动冲突,XDS100系列仿真器使用FTDI芯片,请检查是否与已经安装使用FTDI的USB转串口驱动冲突,如使用XDS200仿真器,请检查计算机中是否正确安装USB转串口驱动或者尝试重新安装计算机主板芯片组驱动。 设置工程配置文件信息 请先按照相关软件安装文档安装CCS,然后打开CCS集成开发环境,点击菜单"File->New->Target Configuration File",如下图所示: 图 2 在弹出的界面中输入工程配置文件名字,然后点击Finish。如下图所示: 图 3 在弹出的对话框的"Connection"下拉框中选择对应的仿真器类型(如使用TL

代码的品味

懵懂的女人 提交于 2020-08-19 04:32:25
我们经常谈论架构,谈论设计,却甚少关注实现和代码本身,架构和设计固然重要,但要说代码本身不重要,不仅我不同意,Robert C.Martin大叔也不同意,大叔认为“ 源码即是设计 ”。 在讨论具体的实施细则之前,我们不妨讨论一下什么是好代码?萝卜特(Martin)大叔认为:衡量代码质量的唯一标准是:WTF/min,也就是review代码的时候每分钟说“握草”的次数。这个定义虽有辱斯文,但粗野中不失调皮,调皮中又蕴含哲理。 好的代码如同文笔优美的散文,行云流水,如沐春风,阅读的时候,赏心悦目,带给人愉悦与启迪。 好的代码犹如构思精巧的小说,它或许不够平铺直述,但足够引人入胜,读到最后,你会豁然开朗,哦,原来是这样的啊,那一刻,你会觉得过程中的曲折和探索都是值得的。 好的代码,透过一个个函数,你仿佛可以窥视到作者有趣的灵魂,透过一行行代码,你仿佛在与一个充满智慧的朋友聊天,她总是思路清晰,逻辑严谨,娓娓道来。 而坏的代码,就像一个泥团,或者像一摊屎,阅读的时候,你仿佛被困于黑暗的迷宫,又仿佛在跟一个絮絮叨叨的人交谈,她的脑回路经常短路,说话含混不清,主次不分,叨逼半天,你依然get不到她的中心思想,你感觉智商受到了莫大的侮辱,甚至感觉像被人喂吃shit,你面露艰难神色,心中万马奔腾。 有很多区分好代码坏代码的规则,网上的文章也很多,我也看过不少,对于文章中提到的一些守则

Command and Query Responsibility Segregation (CQRS) pattern

☆樱花仙子☆ 提交于 2020-08-18 06:49:46
Command and Query Responsibility Segregation (CQRS) pattern The Command and Query Responsibility Segregation (CQRS) pattern separates read and update operations for a data store. Implementing CQRS in your application can maximize its performance, scalability, and security. The flexibility created by migrating to CQRS allows a system to better evolve over time and prevents update commands from causing merge conflicts at the domain level. The problem In traditional architectures, the same data model is used to query and update a database. That's simple and works well for basic CRUD operations.

查看Keil编译代码大小

痴心易碎 提交于 2020-08-15 10:08:03
在Keil中编译代码,超出单片机的存储容量,会弹出以下错误。 Error: L6406E: No space in execution regions with .ANY selector matching xxx.o. 那么,如何得知编译出来的代码,占用了多大的空间? 在Keil中按Rebuild(不是Build)。 没有错误的话,会得到下图所示。 在工程目录下,打开Listings目录,如下图所示。 这里,Libraries存放STM32的固件库,Listings存放映射表,Objects存放.o的中间文件以及.hex下载文件,USER存放源代码。 编译的过程,简单来说是Keil读取Libraries和USER中的源代码,编译成.o中间文件并存放在Objects目录,最后通过链接脚本,把若干个.o文件链接成.hex文件。 其中链接生成的报告在Listings目录中,打开它,可以看到.map文件。 用记事本打开.map文件,拉到最后几行。 这里的Code、RO Data、RW Data、ZI Data是和前面Keil编译的结果相一致的。 Code是代码占用的空间。 RO data是 (Read Only )只读常量的大小,如const。 RW data是(Read Write) 初始化了的可读写变量的大小。 ZI data是(Zero Initialize)