文件属性

插件化框架解读之so 文件加载机制(四)

不羁岁月 提交于 2019-12-06 12:28:48
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击: https://space.bilibili.com/474380680 提问 本文的结论是跟着 System.loadlibrary() 一层层源码走进去,个人对其的理解所整理的,那么开始看源码之前,先来提几个问题: Q1:你知道 so 文件的加载流程吗? Q2:设备存放 so 的路径有 system/lib,vendor/lib,system/lib64,vendor/lib64,知道在哪里规定了这些路径吗?清楚哪些场景下系统会去哪个目录下寻找 so 文件吗?还是说,所有的目录都会去寻找? Q3:Zygote 进程是分 32 位和 64 位的,那么,系统是如何决定某个应用应该运行在 32 位上,还是 64 位上? Q4:如果程序跑在 64 位的 Zygote 进程上时,可以使用 32 位的 so 文件么,即应用的 primaryCpuAbi 为 arm64-v8a,那么是否可使用 armeabi-v7a 的 so 文件,兼容的吗? Q2,Q3,Q4,这几个问题都是基于设备支持 64 位的前提下,在旧系统版本中,只支持 32 位,也就没这么多疑问需要处理了。 源码 准备工作 由于这次的源码会涉及很多 framework 层的代码,包括 java 和 c++,直接在 AndroidStudio 跟进 SDK

文件属性的读取。(常规、详细信息、数字签名)

梦想的初衷 提交于 2019-12-06 12:14:25
本代码是整理的一个集合性的代码。主要用于读取文件的属性信息。包含有常规信息、详细信息、以及数字签名信息。 其中文件的类型信息在本文中没有提到。以及文件的占用空间也没有提到。常规信息中的属性在本文中。也只限于目录以及只读的操作。 下面话不多说。上代码。(如果有哪个大神把文件的类型信息读出来了。或者是文件占用空间读出来了,可以私我,相互学习交流一下。) 下面给出来的代码是可以直接运行的,如果不可以运行,应该是少了相应的库,或者是环境问题。可以相应的查找一下错误,调试一下,然后运行。 #include <windows.h> #include <wincrypt.h> #include <wintrust.h> #include <stdio.h> #include <tchar.h> #pragma comment(lib, "crypt32.lib") #pragma warning(disable:4996) #define ENCODING (X509_ASN_ENCODING | PKCS_7_ASN_ENCODING) typedef struct { LPWSTR lpszProgramName; LPWSTR lpszPublisherLink; LPWSTR lpszMoreInfoLink; } SPROG_PUBLISHERINFO, * PSPROG

阿里巴巴面试题

好久不见. 提交于 2019-12-06 11:46:58
前端面试题目 1. div和span的区别? div是块级标签,span是行级标签 2. 在html中,position取值有哪几种,默认值是什么? 取值:static、relative、fixed、absolute 默认值:static 3. 前端页面由哪三层构成,分别是什么?作用是什么? 前端页面构成:结构层、表示层、行为层 结构层(structural layer) 由 HTML 或 XHTML之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,P标签表达了这样一种语义:“这是一个文本段。” 表示层(presentation layer) 由 CSS 负责创建。 CSS对“如何显示有关内容”的问题做出了回答。 行为层(behaviorlayer) 负责回答“内容应该如何对事件做出反应”这一问题。这是 Javascript 语言和 DOM主宰的领域。 4. 如何居中一个浮动元素? 方式1:设置容器的浮动方式为相对定位,然后确定容器的宽高比如宽500 高 300 的层,然后设置层的外边距。 <!DOCTYPEHTML> <html> <head> <styletype="text/css"> div{ width: 500px; height: 300px; margin:

虚拟机仅主机模式联网

孤街浪徒 提交于 2019-12-06 10:52:34
1.点击更改适配器选项 2.右击以太网--点击属性--共享--选择要共享的网卡 3.修改 ifcfg-eth0文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0 注意:GATEWAY写的是本机的vmnet1的ip   IPADDR写的是虚拟机的ip 4.重启网卡 service network restart 5.ping www.baidu.com 联网成功 来源: https://www.cnblogs.com/sx66/p/11979163.html

渲染Web视图

末鹿安然 提交于 2019-12-06 10:31:06
渲染Web视图 本章主要内容包括: 将数据模型渲染为HTML 使用JSP视图 1 理解视图解析 将控制器中请求处理的逻辑和视图中的渲染实现解耦是Spring MVC 的一个重要特性。如果控制器中的方法直接负责产生HTML的话,就很难在不影响请求处理逻辑的前提下,维护和更新视图。控制器方法和视图的实现会在模型内容上达成一致,这是两者的最大关联,除此之外,两者应该保持足够的距离。但是,如果控制器只通过逻辑视图来了解视图的话,那Spring该如何确定使用哪一个视图实现来渲染模型呢?这就是Spring视图解析器的任务了。 在之前的章节中,我们使用名为InternalResourceViewResolver的视图解析器。在它的配置中,为了得到视图的名字,会使用”/WEB-INF/views/”前缀和”.jsp”后缀,从而确定来渲染模型的JSP文件的物理位置。现在,我们回过头来看看视图解析器的基础知识以及Spring提供的其他视图解析器。 Spring MVC 定义了一个名为ViewResolver的接口,它大致如下所示: public interface ViewResolver { View resolveViewName(String viewName, Locale locale) throws Exception; } 当给resolveViewName(

【翻译】Flink Table Api & SQL — SQL客户端Beta 版

痞子三分冷 提交于 2019-12-06 10:11:16
本文翻译自官网:SQL Client Beta https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sqlClient.html Flink的Table&SQL API使使用SQL语言编写的查询成为可能,但是这些查询需要嵌入用Java或Scala编写的表程序中。 此外,在将这些程序提交给集群之前,需要将它们与构建工具打包在一起。 这或多或少地将Flink的使用限制为Java / Scala程序员。 SQL客户端旨在提供一种简单的方法来编写,调试和提交表程序到Flink集群,而无需一行Java或Scala代码。 SQL Client CLI允许从命令行上正在运行的分布式应用程序检索和可视化实时结果。 注: 动图,请查看源网页 注意:SQL Client 处于早期开发阶段。 即该应用程序尚未投入生产,它对于原型制作和使用Flink SQL还是一个非常有用的工具。 将来,社区计划通过提供基于 REST 的 SQL Client Gateway 来扩展其功能。 入门 启动SQL客户端CLI 运行SQL查询 配置 环境文件 依存关系 用户定义的函数 Catalog 分离的SQL查询 SQL视图 时态表 局限与未来 入门 本节介绍如何从命令行设置和运行第一个Flink SQL程序。

Java NIO:Buffer、Channel 和 Selector

久未见 提交于 2019-12-06 09:59:46
本文将介绍 Java NIO 中三大组件 Buffer、Channel、Selector 的使用。 本来要一起介绍非阻塞 IO 和 JDK7 的异步 IO 的,不过因为之前的文章真的太长了,有点影响读者阅读,所以这里将它们放到另一篇文章中进行介绍。 Buffer 一个 Buffer 本质上是内存中的一块,我们可以将数据写入这块内存,之后从这块内存获取数据。 java.nio 定义了以下几个 Buffer 的实现,这个图读者应该也在不少地方见过了吧。 其实核心是最后的 ByteBuffer,前面的一大串类只是包装了一下它而已,我们使用最多的通常也是 ByteBuffer。 我们应该将 Buffer 理解为一个数组,IntBuffer、CharBuffer、DoubleBuffer 等分别对应 int[]、char[]、double[] 等。 MappedByteBuffer 用于实现内存映射文件,也不是本文关注的重点。 我觉得操作 Buffer 和操作数组、类集差不多,只不过大部分时候我们都把它放到了 NIO 的场景里面来使用而已。下面介绍 Buffer 中的几个重要属性和几个重要方法。 position、limit、capacity 就像数组有数组容量,每次访问元素要指定下标,Buffer 中也有几个重要属性:position、limit、capacity。 最好理解的当然是

JAVA Class文件和类加载机制

别等时光非礼了梦想. 提交于 2019-12-06 08:44:05
1 class文件结构 Class文件结构是了解虚拟机的重要基础之一,如果想深入的了解虚拟机,Class文件结构是不能不了解的。 Class文件是一组以8位字节为基础单位的二进制流,各项数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,如果是超过8位字节以上空间的数据项,则会按照高位在前的方式(Big-Endian)分割成若干个8位字节进行存储。(Big-Endian模式具体可见 详解大端模式和小端模式 ) Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。 Class文件格式只有两种数据类型:无符号数和表。 无符号数属于基本的数据类型,以u1,u2,u4,u8来分别代表1个字节,2个字节,4个字节和8个字节的无符号数;可用来描述数字,索引引用,数量值或者按照UTF-8编码构成的字符串值。 表是由 多个无符号数或者其他表作为数据项构成的复合数据类型 ,所有表都习惯性地以“_info”结尾。表用于描述由层次关系的复合结构的数据。 整个Class文件本质上就是一张表 class文件的内容中没有任何的分隔符号,所以在上表中的数据项,无论是顺序还是数量,都是被严格限定的,哪个字节代表什么含义,长度多少,先后顺序如何,都不允许改变。 1.1 魔数和class文件的版本 Class文件的头4个字节成为魔数(Magic Number)

常用的JAVA第三方工具类

前提是你 提交于 2019-12-06 06:56:42
转自: https://www.jianshu.com/u/9c5cb1ee4c46 一. org.apache.commons.io.IOUtils 注解 说明 closeQuietly 关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块 toString 转换IO流、 Uri、 byte[]为String copy IO流数据复制,从输入流写到输出流中,最大支持2GB toByteArray 从输入流、URI获取byte[] write 把字节. 字符等写入输出流 toInputStream 把字符转换为输入流 readLines 从输入流中读取多行数据,返回List copyLarge 同copy,支持2GB以上数据的复制 lineIterator 从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败 二. org.apache.commons.io.FileUtils 方法名称 说明 deleteDirectory 删除文件夹 readFileToString 以字符形式读取文件内容 deleteQueitly 删除文件或文件夹且不会抛出异常 copyFile 复制文件 writeStringToFile 把字符写到目标文件,如果文件不存在,则创建 forceMkdir 强制创建文件夹

C++常见编译知识

时间秒杀一切 提交于 2019-12-06 05:41:10
在 项目属性 —> 配置属性 —> C/C++ —> 常规 —> 附加包含目录 中增加:$(ProjectDir) 说明 $(RemoteMachine) 设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。 $(References) 以分号分隔的引用列表被添加到项目中。 $(ConfigurationName) 当前项目配置的名称(例如“Debug”)。 $(PlatformName) 当前项目平台的名称(例如“Win32”)。 $(Inherit) 指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。 $(NoInherit) 使任何将被继承的属性不被继承。若还要避免同级级别的计算,请使用 ( S t o p E v a l u a t i n g ) 。 使 用 (StopEvaluating)。使用(NoInherit)会导致对于同一属性忽略任何出现的 $(Inherit)。 $(StopEvaluating) 立即停止计算链中宏的计算。出现在 ( S t o p E v a l u a t i n g ) 之 后 的 任 何 值 将 不 出 现 在 宏 的 计 算 值 中 。 如 果 (StopEvaluating)之后的任何值将不出现在宏的计算值中。如果