首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

UNIX编程艺术之“文本化”

的确,好的协议或文件格式,会大大提升使用者的效率。这里的文本化,包括两,一是通信协议,二是数据文件(包括配置文件,日志文件等)。下面分别讨论这两种数据的常用格式。 1....配置文件常用的格式有ini,xml格式,比较推荐的是xml格式的,xml分层的结构和灵活的设计可以很方便的扩展并且保存向下兼容。...日志文件一般分为两种,一种是出错日志,另一种是流水日志。...这里记录流水的原因有两个:一是如果补偿出错,可以根据补偿前的数量进行数据恢复,二是补偿完后用于和用户进行对帐应付投诉。...总之,在设计协议或数据文件,采用文本格式还是二进制格式,以及如何制定格式,最终要站在使用者的立场上进行考虑,易用性、扩展性、性能,需要综合考虑,权衡利弊,多设计一些场景,从而可以挖掘更多的需求,也使得格式更方便地满足更多需求

55020

NavigationDrawer和NavigationView-Android M新控件

而在 DrawerLayout 没诞生之前,需求中需要实现侧滑导航效果,我们通常会选择去选择一些成熟的第三方开源库(如最有名的 SlidingMenu)来实现类似的效果。...需要吐槽的是,这里如果你引入了 com.android.support:design:23.1.0 ,工程运行后 NavigationView 会报一个 android.view.InflateException...用于NavigationView的典型menu文件,应该是一个可选中菜单项的集合。其中checked=”true”的item将会高亮显示,这可以确保用户知道当前选中的菜单项是哪个。...里面的图标,可以下载APP,解压后,去文件夹里取出来~ 主要就是一个线性布局的菜单并结合了 Translucent System Bar 的特性。...android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7

83740

Android事件处理机制

2.6绑定到组件事件属性 就是在界面组件中为指定的组件通过属性标签定义监听器 刚刚那个xml文件把button那个部分改一下 <Button android:paddingTop...EditText的onKeyDwon()方法,因此,当用户在此组件上按下任意键都会触发OnKeyDown()方法,在该方法中返回false,即按键事件会继续向外传递 布局文件挺简单的,就是把上面那个自定义的组件包含进来就...: Binary XML file line #8: Error inflating class cn.aiyuan1996.huidiaoprocess.MyTestBox 10-25 16:50:33.398...: E/AndroidRuntime(1463): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating...中处理的消息的方法即可,当新启动的线程发送消息,消息会发送到与之关联的MessageQueue,而Handler会不断的从MessageQueue中获取并处理消息-这将导致Handler中的处理消息的方法被回调

82630

Android 3分钟带你入门开发测试

由于仪器测试内置于 APK 中(与您的应用 APK 分离),因此它们必须拥有自己的 AndroidManifest.xml 文件。...不过,由于 Gradle 会自动在构建生成该文件,因此它在您的项目源集中不可见。您可以在必要(例如需要为 minSdkVersion 指定其他值或注册测试专用的运行侦听器)添加自己的清单文件。...构建应用时,Gradle 会将多个清单文件合并成一个清单。 当您新建项目或添加应用模块,Android Studio 会创建以上所列的测试源集,并在每个源集中加入一个示例测试文件。...在EditText中输入任意字符串,点击Button在TextView中显示出来,如图6、7所示: 为了照顾到更多小伙伴,这里尽量写的细点,对应的Activity/xml文件如下所示: import...xml version="1.0" encoding="utf-8"?

1.2K50

HCNP学习笔记之子网掩码的计算和划分详细

其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新的开销,从而加重网络负担。...例如:有一个C地址为:192.9.200.13,按其IP地址类型,它的缺省子网掩码为:255.255.255.0,则它的网络号和主机号可按如下方法得到: 1步,将IP地址192.9.200.13转换为二进制...然后按以下基本步骤进行计算: 1步,将子网数目转化为二进制来表示; 2步,取得子网数二进制的位数(n); 3步,取得该IP地址的子网掩码,然后将其主机地址部分的的前n位置“1”,即得出该IP地址划分子网的子网掩码...为了便于理解,现举例说明如下:现假如要将一BIP地址168.195.0.0划分成27个子网,则它的子网掩码的计算机方法如下(对应以上各基本步骤): 1步,首先要划分成27个子网,“27”的二进制为“...11011”; 2步,该子网数二进制为五位数,即n = 5; 3步,将该B地址的子网掩码255.255.0.0的主机号前5位全部置“1”,即可得到 255.255.248.0,这就是划分成 27个子网的

86110

导入导出(实体对象百变魔君)

NewLife.Redis 优先支持 IAccessor 接口,因此,把XCode实体对象写入Redis,采用的是二进制高效精简格式,而不是默认的Json格式。...实体可通过重载 OnWrite 来自定义二进制序列化的行为。...,影响计算应用的加载甚至可能导致出错退出; 这种场景,可以在加载一次后,把实体列表数据保存到本地文件中,然后定时(10分钟)更新; 下次启动,直接使用本地缓存数据,大大提升了应用启动速度,并且降低了数据库负担...快速展现用法,代码配置连接字符串 数据模型文件。建立表格字段和索引,名字以及数据类型规范,推荐字段(时间,用户,IP) 实体详解。数据业务,泛型基,接口 功能设置。...Xml,Json,二进制,网络或文件 分表分库。常见拆分逻辑 高级统计。聚合统计,分组统计 批量写入。批量插入,批量Upsert,异步保存 实体队列。写入级缓存,提升性能。 备份同步。

1.2K20

《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

CloudReader 一款基于网易云音乐UI,使用GankIo及豆瓣api开发的符合Google Material Desgin阅读的开源项目。...每天12:30之后更新,因为双休不更新所以内容缓存三天网络取不到就取缓存。 福利: Glide加载图片,点击查看大图,支持双指缩放,一下可查看列表的所有图片,再也不用逐个点击每张图啦。...书籍: 检索豆瓣心理学的书籍并展示。 抽屉界面 完全仿网易云音乐抽屉界面,包括诸多细节如透明标题栏,背景透明度,水波纹颜色等。...xml version="1.0" encoding="utf-8"?...最终布局文件: <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width

1.3K10

学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(1)

创建聚合项目 先创建一个普通的Maven项目: 然后,填写项目名称与组织ID: 当项目创建成功后,默认会打开pom.xml,在该文件中添加配置: pom节点进行配置,使用该节点配置的依赖,子项目是不可以直接使用的: 如果直接在子项目中尝试使用该依赖的,将会出错: 假设是shop-order子模块项目需要使用MySQL的依赖,需要在子模块项目的...另外,在以上操作步骤中,shop-user子模块项目并没有添加MySQL的依赖,所以,当执行同样的测试,肯定是会出错的! 2. 项目前期准备–学习创建SpringBoot聚合项目 2.1....在4个界面中,主要确定存储项目文件的位置是否正确,全部无误后,则完成创建过程! 2.2....创建完成后,在子模块项目的pom.xml文件中可以看到其父项目依然是SpringBoot项目,而不是之前创建的blog项目: 则需要将此处的父项目改为blog项目(打开父项目的pom.xml文件找到相关信息后复制并粘贴到子模块项目中

79920
领券