区别

【转】关于Android的.so文件你所需要知道的 (一)

心不动则不痛 提交于 2019-12-06 08:14:39
原文链接 早期的Android系统几乎只支持ARMv5的CPU架构,你知道现在它支持多少种吗?7种! Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI。应用程序二进制接口( A pplication B inary I nterface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。在Android 系统上,每一个CPU架构对应一个ABI:armeabi,armeabi-v7a,x86,mips,arm64- v8a,mips64,x86_64。 为什么你需要重点关注.so文件 如果项目中使用到了NDK,它将会生成.so文件,因此显然你已经在关注它了。如果只是使用Java语言进行编码,你可能在想不需要关注.so文 件了吧,因为Java是跨平台的。但事实上,即使你在项目中只是使用Java语言,很多情况下,你可能并没有意识到项目中依赖的函数库或者引擎库里面已经 嵌入了.so文件,并依赖于不同的ABI。 例如,项目中使用RenderScript支持库,OpenCV,Unity,android-gif-drawable

mipmap和drawable文件夹的区别

大憨熊 提交于 2019-12-05 21:34:31
现在,通过Android Studio创建Android工程,默认会创建mipmap文件夹,而不是以前的drawable文件夹。那么mipmap和drawable文件夹到底有什么区别呢? 定位不同 mipmap文件夹下的图标会通过Mipmap纹理技术进行优化。关于Mipmap纹理技术的介绍,请参考: Mipmap纹理技术简介 经过查询官方和第三方资料,得出结论: mipmap文件夹下,仅仅建议放启动图标/app launcher icons,也就是应用安装后,会显示在桌面的那个图标。而其他的图片资源等,还是按照以前方式,放在drawable文件夹下。 下面再详细阐述下,得出以上结论的依据: 1. google官方关于mipmap和drawable的定位 drawable/ For bitmap files (PNG, JPEG, or GIF), 9-Patch image files, and XML files that describe Drawable shapes or Drawable objects that contain multiple states (normal, pressed, or focused). See the Drawable resource type. mipmap/ For app launcher icons. The Android

mysql与oracle区别

﹥>﹥吖頭↗ 提交于 2019-12-04 19:06:37
编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型; MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样 2 Varchar2(n) varchar(n)   3 Date DATATIME 日期字段的处理 MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间为 SYSDATE, 精确到秒,或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)年-月-日 24小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SS TO_DATE()还有很多种日期格式, 可以参看ORACLE DOC.日期型字段转换成字符串函数TO_CHAR(‘2001-08-01’,’YYYY-MM-DD HH24:MI:SS’) 日期字段的数学运算公式有很大的不同。MYSQL找到离当前时间7天用DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)ORACLE找到离当前时间7天用 DATE_FIELD_NAME >SYSDATE - 7; MYSQL中插入当前时间的几个函数是

【C#每日一帖】【转】C#与C++的区别

一笑奈何 提交于 2019-12-04 16:43:58
没有什么语言能比C++更加贴近Windows本身了,这一点也是不可否认的。如果哪一天C#也能写驱动的时候,那么C++就真的会淘汰了(这天可能不会太远又或者很遥远)。 C#能做的,C++不一定都能做,C++能做的,C#也不一定都好做,所以经常看到有人拿这2个语言对比,我觉得确实没什么必要。 C#繁杂的调用Win32 API的方式,确实让人很不舒服,C++这一点做得比它好。但是,C#强大的网络操作,代码量大大地低于C++,我们抛弃不用Socket,改用WinInet或是MFC中的封装好的网络类,比如CHttpFile,还是没C#简单。C#的傻瓜式的类库操作和面向对象编程的完美特性,确实让其成为了Windows平台上最受欢迎的语言。也许,是微软想将Win32 API渐渐地全部封装到C#的类库中去,我感觉微软有这个意图,也许将来C#就不需要调用那些繁杂的Win32 API了,类库中均有提供也说不定。 我们为什么学VC?这点我曾经也问过自己。圣经上说:你必须知道真相,真相会使你自由。我们学VC是为了自由,不受微软的框制。微软通过种种的FrameWork让你陷于其中,你觉得,哇,原来编程是这么容易啊,几句话就能搞定。你想知道微软在内部干了些什么呢?你不知道,当然,你如果认为你没必要知道,这个我完全赞同,我后面会说。就说杀进程吧,C#中不通过Win32 API就那么一种方式,通过System

关于移动端前端开发和PC端前端开发的一点总结

点点圈 提交于 2019-12-02 09:08:09
首先就是操作兼容性和个移动版浏览器的兼容性 :传统设备上用户利用鼠标(包括触摸版)和键盘来操作网页,放大图片、拖拽元素、进行页面滚动等等。一些常见的鼠标和键盘事件诸如mouseover、mouseout、mousemove、click、foucs、blur等为我们提供了很好的页面交互操作,具体可以参考 W3school 。   然而,开发支持触摸屏的网页与传统意义上的网页有很大的不同。就拿鼠标hover事件来说,例如页面上有一个表格,当鼠标指向表格的 title时你希望在附近的某个地方显示一个浮动的tooltip。当然,你希望这个tooltip能更加引起浏览者的注意,因此你自定义了一个DIV元 素并且通过JavaScript让它动态显示或隐藏。这个程序很简单,并且在普通设备的多个不同版本的浏览器上都运行良好。但是如果你在支持触摸屏的设备 上浏览网页的时候问题却来了,设备不支持鼠标,因此用户无法用鼠标来hover表格的title元素。用户唯一能和网页进行交互的设备就是用手指去触摸或 滑动屏幕,然而在一个非touch friendly的网页上用手指去触发传统的mouse hover事件会显得非常怪异,你会发现tooltip会在你手指接触到屏幕的一瞬间显示,而后马上会消失。这是因为浏览器默认触发了mouseover 和mouseout两个事件

php转换字符串编码 iconv与mb_convert_encoding的区别

不问归期 提交于 2019-12-01 21:03:27
PHP判断字符串编码函数mb_detect_encoding总结 iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5) mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5) iconv — 字符串按要求的字符编码来转换 mb_convert_encoding — 转换字符的编码 这 两个 函数功能类似都是用来转换字符串编码的; 用法: string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) 注:需要先启用 mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉 参数:str——要编码的str、to_encoding——str要转换成编码类型、from_encoding——在转换前通过字符代码名称来指定。 它可以是一个 array 也可以是逗号分隔的枚举列表 。 如果没有提供 from_encoding,则会使用内部(internal)编码。 参见支持的编码。 支持的字符编码 当前 mbstring

this 和 getApplicationContext Context的区别

梦想的初衷 提交于 2019-12-01 04:26:36
转自:http://stackoverflow.com/questions/1026973/android-whats-the-difference-between-the-various-methods-to-get-a-context In various bits of Android code I've seen: 在大量的android代码中,我看到如下的写法: public class MyActivity extends Activity { public void method() { mContext = this; // since Activity extends Context mContext = getApplicationContext(); mContext = getBaseContext(); } } However I can't find any decent explanation of which is preferable, and under what circumstances which should be used. 不过,我不能找到任何像样的解释:那种写法是最好的,在哪种情况应使用哪种写法。 Pointers to documentation on this, and guidance about what might

select、poll、epoll之间的区别总结

家住魔仙堡 提交于 2019-11-30 11:47:56
   select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。 但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的 ,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。 关于这三种IO多路复用的用法,前面三篇总结写的很清楚,并用服务器回射echo程序进行了测试。连接如下所示: select: http://www.cnblogs.com/Anker/archive/2013/08/14/3258674.html poll: http://www.cnblogs.com/Anker/archive/2013/08/15/3261006.html epoll: http://www.cnblogs.com/Anker/archive/2013/08/17/3263780.html   今天对这三种IO多路复用进行对比,参考网上和书上面的资料,整理如下: 1、select实现 select的调用过程如下所示: (1)使用copy_from_user从用户空间拷贝fd_set到内核空间 (2)注册回调函数__pollwait (3)遍历所有fd

Linux中yum和apt-get用法及区别

房东的猫 提交于 2019-11-29 15:48:58
linux下configure命令详细介绍 一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat(RHEL)、Centos、Fedora、 Oracle Linux 等 2.Debian系列:Debian、Ubuntu等 RedHat 系列 1 常见的安装包格式 rpm包,安装rpm包的命令是“ rpm -参数 ” 2 包管理工具 yum 3 支持tar包 Debian系列 1 常见的安装包格式 deb包,安装deb包的命令是“ dpkg -参数 ” 2 包管理工具 apt-get 3 支持tar包 tar 只是一种压缩文件格式,所以,它只是把文件压缩打包而已。 rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。 优缺点来说,rpm一般都是预先编译好的文件,它可能已经绑定到某种CPU或者发行版上面了。 tar一般包括编译脚本,你可以在你的环境下编译,所以具有通用性。 如果你的包不想开放源代码,你可以制作成rpm,如果开源,用tar更方便了。 tar一般都是源码打包的软件,需要自己解包,然后进行安装三部曲,./configure, make, make install. 来安装软件。 rpm是redhat公司的一种软件包管理机制,直接通过rpm命令进行安装删除等操作,最大的优点是自己内部自动处理了各种软件包可能的依赖关系。 ---

Java中HashMap和HashTable区别

徘徊边缘 提交于 2019-11-29 09:41:08
前几天被一家公司电面的时候被问到HashMap和HashTable的区别,当时就懵逼了,hashTable是个啥?从来没用过啊,于是电面完之后马上google了一把,这回涨姿势了; HashMap和HashTable同属于Java.util包下的集合类,Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集合框架中的一部分。 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 对比项 HashMap HashTable 是否线程安全 否 是 是否synchronized 否 是 是否支持多线程共享 在有正确的同步机制的前提下可以支持多线程共享 支持 单线程效率 高 底 只随时间推移元素次序是否不变 不一定 是 是否支持null的key和value 支持 不支持 另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以当有其它线程改变了HashMap的结构(增加或者移除元素),将会抛出ConcurrentModificationException,但迭代器本身的remove(