之前做wifi的,主要是负责的就是UI界面和framework层,今天具体了解一下framework是什么。...Android架构主要分为分为四部分,从下往上以此为LINUX KERNEL(内核层),LIBRARIES(共享库,以及android运行时库),APPLICATION FRAMEWORK(应用框架层)...而本文主要分析就是APPLICATION FRAMEWORK(应用框架层)。 Framework在Android系统中处于一种承上启下的地位。...承上的意思是框架为上层应用提供api和运行机制;启下的意思是框架屏蔽了下层的复杂性,为上下层的交互定义了一套规范。
上篇文章我们综合讲解了做了Dynamic Library的framework 和 Static Library 的framework这两种库的流程和注意事项。...两种framework的制作 今天我们再来说一个非常重要不可忽视的坑 静态库内部类添加Category 啥?Category?...你可能会说这个再常见不过了,多么常用的功能啊,但是这个坑第一是必须要踩,并且莫名其妙……… 我们接着上次的工程为EmViewController.h添加Category #import <EmbededFramework...之后在壳工程中试着调用吧 EmViewController *vc = [[EmViewController alloc] initWithNibName:@"EmbededFramework.framework...-force_load: 这个flag与-all_load其实是一样的,只是-force_load需要指定要进行全部加载的库的文件路径,这样只是完全加载了一个库文件,不影响其余文件按需加载
ArrayList/Vector 的底层分析 ArrayList ArrayList 实现于 List、RandomAccess 接口。可以插入空数据,也支持随机访问。...将插入的值放到尾部,并将 size + 1 。...接着对数据进行复制,目的是把 index 位置空出来放本次插入的数据,并将后面的数据向后移动一个位置。...由此可见 ArrayList 的主要消耗是数组扩容以及在指定位置添加数据,在日常使用时最好是指定大小,尽量减少扩容。更要减少在指定位置插入数据的操作。...从实现中可以看出 ArrayList 只序列化了被使用的数据。 Vector Vector 也是实现于 List 接口,底层数据结构和 ArrayList 类似,也是一个动态数组存放数据。
之前对于制作framework没有怎么去深入研究,不过之前偷的懒还是要还的????...今天我们来看看制作framework---dynamic和static这两中库需要注意的 1 基本的framework配置 配置(如下图)选择dynamic library ?...我们使用xib方式创建了tableView和cell以及一个viewcontroller 3 需要暴漏给外部使用h文件 好了基本的工程已经出来了,现在我们来看看怎么玩这两种形式的framework...我们此时可以将framework拖到工程中使用啦,但是xib对应的此时是无法加载的。为什么? 对于此时的动态库来说,是在需要是动态载入的 ?...Payload这个里去按照名称搜索,不过此时想要拿到对应的nib则需要先进入framework然后才是对应资源名称,因此可以我们就需要加载个库名称啦 也就是:库名称.framework/xxxx.nib
Collection FrameWork 如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable...├HashMap └WeakHashMap Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素(Elements); Map...提供 key 到 value 的映射。
自从上次学习了TCP/IP的拥塞控制算法后,我越发想要更加深入的了解TCP/IP的一些底层原理,搜索了很多网络上的资料,看到了陶辉大神关于高性能网络编程的专栏,收益颇多。...今天就总结一下,并且加上自己的一些思考。 我自己比较了解Java语言,对Java网络编程的理解就止于Netty框架的使用。...为什么不能阻塞读取网络信息的IO线程呢?这里就要从经典的网络C10K开始理解,服务器如何支持并发1万请求。C10K的根源在于网络的IO模型。...socket有一系列的具有默认值的配置属性,比如socket默认是阻塞式的,它的SO_RCVLOWAT属性值默认为1。...用户调用的recv接收阻塞socket上的报文,该socket的SO_RCVLOWAT值大于第一个报文的大小,并且用户分配了足够大的长度为len的内存。
作为一位iOS开发者,如何才能开启自己的底层探索之路呢?每当点击系统API无法跟进实现只能浅尝辄止的时候,有没有想过怎样才能看到底层源码的真容,而不是在还没开始就结束了呢?...本文中会提供三种方式来一探底层的魅力。 Apple的小心思 这句代码应该非常熟悉了吧?可是想知道alloc具体是如何实现对象的创建呢?...没有注释,也再无法跟进,显然Apple不想让你看到底层是如何实现的?可是这样就放弃了吗?...三种源码探索的方式: 使用Xcode提供的符号断点方式 使用Xcode提供的分步调试方式 通过汇编方式 下面就这三种方式一一说明: 1. 符号断点 第一步: 添加符号断点 ?...分步调试 如果在你增加了对应API的符号断点还是无法精确找到源码库名的时候,第一种方式就不够用了。 第一步:为自己输入的代码增加断点,run后等待断点触发 这一步与之前的操作相同。
大家好,又见面了,我是你们的朋友全栈君。...ThreadLocal 作用: 提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂性。...---- 各种引用用途: 强引用:最常用的一种引用 软引用:适合做缓存,比如内存中一张图片,当内存不够用的时候先把图片移动出去,当内存充足的时候再把图片load进来 弱引用:为了解决某些地方的内存泄露问题...,当DirectByteBuffer回收后,会通知队列,这时候JVM垃圾回收器就知道去系统内存请理相应的系统内存空间 ---- ThreadLocal底层: 每个ThreadLocal对应一个ThreadLocalMap...,如果一个对象只有弱引用的时候,那当垃圾回收器遇见他的时候它就会被回收。
Openstack社区一直没有专门的VM HA的组件来支持VM HA,所以各个厂商有这个需要都自己开发。 社区给的解释是,VM HA是应用层考虑的事情,而不是Iaas层考虑的事情。...OPNFV Doctor项目本身没有代码,而是集成测试上游项目Openstack的几个项目,将其整合成一套支持VM HA的框架。写这篇文章就是来介绍该框架的。...Collectd有Ceilometer的插件,也有SNMP的插件。可以和ceilometer连接,也可以通过发送snmp消息和其他组件传递消息。
Framework是资源的集合,将静态库和其头文件包含到一个结构中,让Xcode可以方便地把它纳入到你的项目中。...;例如:.dylib和.framework 系统的.framework是动态库,我们自己建立的.framework是静态库。...详情区别请前往 http://www.2cto.com/kf/201408/325602.html 接下来记录一下迟到的Framework文件的打包过程:衔接上一篇的 Bundle&Framework...创建Framework工程.gif 二、创建添加需要集成打包在Framework中的文件,比如说Bundle、Framework、.a、.h/.m类文件等等...之后进行你的需求操作就是了 ?...创建完成后.png 三、配置工程的打包环境 将Mach-O Type设为Static Library, framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的
执行带参数的关键字 ? 带默认值的关键字 带默认值的Arguments:${name}='默认值' 关键字的Settings ?...,测试套件,测试用例都有各自的Setting,基本上见名知意 和其他的单元测试测试套一样,Robot Framework通过Setting中的Setup和Teardown实现了测试环境的准备与清理。...用于整个测试套件的初始化清理。 在测试项目或者测试套件的Settings中配置。 仅在开始和结束的时候执行一次。...在测试项目或者测试套件的Setting中配置。 当测试用例不包含初始化清理语句时,会执行。 当测试用例包含初始化清理语句时,不会执行!...*** Setting *** test case01 [Setup] 关键字 [Teardown] 关键字 使用到多个初始化或者清理的关键字的时候使用大写的AND来进行拼接
实现方式 Aop的实现方式,大体是分为两个版本一个是不同框架下的实现方式,不同平台就是Framework下面的实现方式,还有一种是Core下面的实现方式,这里我们主要讲这两种,第二个实现方式下面是两个通用的实现方式...,一种是基于IL的形式去实现,还有一种是基于内存的形式的实现,这里不太对这两种进行过多的讲解,后续会写一个使用IL去实现AOP的代码,这里主要讲FrameWork和Core框架下如何实现AOP代理的两种比较简单的方法...frameWork 在framework的框架下,可以使用RealProxy类来实现静态代理的的aop,需要自己去继承RealProxy这个类,然后实现Invoke的抽象方法,即可实现Aop...Instance的话,那在Invoke方法里,我们调用我们调用的GetName的方法的Invoke的时候,会造成一个死循环的一个操作,就是不停的去GetName,也就不停止的走我们重写的Invoke的方法...同样的,在RealProxy中我们可以记录日志,异常,执行前,执行后等操作,在这个Invoke里面,我们同样可以,这便是我在FrameWork以及Core中实现Aop的两种方式。
大家好,又见面了,我是你们的朋友全栈君。 Spring Framework 依赖注入、事务管理、Web应用程序、数据访问、消息传递、测试和更多的核心支持。...介绍 Spring框架提供了现代的基于java的企业应用程序在任何部署平台的综合规划和配置模型。...Spring的一个关键元素是应用程序级的基础设施支持:Spring关注企业应用程序的“管道”,以便团队能够专注于应用级业务逻辑,而不必与特定部署环境不必要的联系。...Spring Framework 3.x 0x04 Building Java Projects with Maven 和大多数 Spring入门指南 一样,您可以从头开始完成每一步,也可以绕过您已经熟悉的基本设置步骤...Run 主方法 上面的例子显示了依赖注入的基本概念,messageprinter 实现 MessageService接口是解耦的,写什么都可以使用Spring Framework。
ThreadLocal 作用: 提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂性。...,用来指向对外内存(操作系统管理的内存),操作系统管理的内存JVM垃圾处理器不能回收,所以当DirectByteBuffer回收后,会在队列中有相应的记录,之后JVM会去处理对外内存。...---- 各种引用用途: 强引用:最常用的一种引用 软引用:适合做缓存,比如内存中一张图片,当内存不够用的时候先把图片移动出去,当内存充足的时候再把图片load进来 弱引用:为了解决某些地方的内存泄露问题...,当DirectByteBuffer回收后,会通知队列,这时候JVM垃圾回收器就知道去系统内存请理相应的系统内存空间 ---- ThreadLocal底层: 每个ThreadLocal对应一个ThreadLocalMap...,如果一个对象只有弱引用的时候,那当垃圾回收器遇见他的时候它就会被回收。
我们经常会使用weak来解决OC中的循环引用问题,因为weak不会使引用计数加1;并且weak修饰的指针还会在对象被销毁后自动置空,这有效的解决了野指针调用的问题。...那么weak 的底层原理是怎样的呢?我们接下来就来分析一下。 首先随便在一个工程中,写入下面类似的代码,然后在weak的那行打断点: ? 运行到断点处,转成汇编分析: ?...在最后,可以通过存储的这个弱指针的地址找到其指向的弱指针,然后将弱指针置空。...3.1 weak_table_t 先来看看weak_table_t的底层代码: /** * The global weak references table....到这里位置,我们实际上就已经介绍完了【对一个对象做weak操作的时候底层所做的事情】: 首先,会有一张SideTable散列表,这个散列表包含了引用计数表、弱引用表等; 然后,散列表里面会有一张全局的弱引用表
但是又因为它包含了JNI的方法,JNI用C/C++编写接口,根据函数表查询调用核心库层里的底层方法,最终访问到Linux内核。那么Framework层的作用就有2个。...有关专家给出了如下解释: C/C++过于底层,开发者要花很多的经历对C/C++的语言研究清楚,例如C/C++的内存机制,如果稍不注意,就会忘了开启或者释放。...而Java的GC会自动处理这些,省去了很多的时间让开发者专注于自己的业务。所以才会从C/C++的底层慢慢向上变成了JAVA的开发语言,该层通过JNI和核心运行库层进行交互。...和arm架构下预编译的一些资源) |– sdk (sdk及模拟器) |– system (底层文件系统库、应用及组件——C语言) |– tools `– vendor (厂商定制代码)...系统服务 \system\framework\svc.odex \system\lib lib目录中存放的主要是系统底层库,如平台运行时库。
objective-c不像CSharpe有一个标准库 他的标准有很多,想象一下近40年前的编程语言 他都经历了什么,因为早期objective-c的一套工具库是乔老头子出走时Next-step公司写的,...bjective-c一般常用的就是 Foundation framework。这里稍微介绍一些基础工具类。点到即止 API 太多了,我也没时间花大篇幅翻译。用到哪儿就找哪儿的API。...二者在类型上是不同的,但是存储的字符串是可以做对比的。 NSMutbaleString就有点类似C#的StringBuild这个类,可以做一些字符串的增删改操作。...NSArray是不可变的,NSMutableArray是可变的。二者在类型上是不同的。如果需要操作数组还是用NSMutableString,这个版本的array。...属性字典允许你指定要创建的文件的权限,如果将该参数指定为nil,该文件会被设置为默认权限。
-2.硬件和软件设计和ZigBee On Windows Mobile--3.模拟器和实物调试等),今天在Michael的Blog上发现他已经将ZigBee在.NET Framework 和 Micro...Framework平台上实现了,并且作为开源项目,在codeplex上提供源代码下载。 ...进去细看了一下,发现他用的是Digi的ZigBee平台。...Michael是在.NET Framework3.5上写的ZigBee Console,主要的工作还是放在XBee模块的协议处理上,即数据报的发送、接收。...希望对在.NET Framework 和 Micro Framework平台做ZigBee处理的朋友有用。
随着 Entity Framework 最新主版本 EF6 的推出,Microsoft 对象关系映射 (ORM) 工具达到了新的专业高度,与久负盛名的 .NET ORM 工具相比已不再是门外汉。...首先,从 .NET Framework 中提取所有的 Entity Framework API,并与团队同时正在开发的非常规功能 API 组合在一起。 其次,整个开发工作改用了开源模型。...几乎您原先掌握的所有 EF 技能都没有变化,例如如何生成 Entity Framework 模型以及如何在您的应用程序中使用 EF。...正如我刚才提到的,EF6 的 EF API 是从 .NET Framework 中提取的;它们现已完全封装在 NuGet 程序包中。...Nido Framework 是一个基于.NET 4和 Entity Framework 6的框架,它的开源协议是GPL2,项目地址是https://nidoframework.codeplex.com
Entity Framework 4的特性介绍可看这篇文章 .NET 4中Entity Framework简介,其中最感兴趣的一点就是对POCO的支持了:EF4为实体提供了简单传统CLR对象(Plain...其中一个很大的原因,也许就是不支持POCO,至少我自己是这么想而不使用EF1的,Entity Framework 4.0版本(又称EF V2)将提供POCO支持,对很多人来说,这是开始使用Entity...Framework的时候了。...,虽然文章是写于EF4 beta1的时候,现在已经是RC,一样有效: POCO in Entity Framework : Part 1 – The Experience(【翻译】实体框架中的POCO支持...Entity Framework 4.0 引入了基于约定(convention)的映射,以允许不用显式的修饰,就可将实体类型,属性,复杂类型和关系映射到概念性模型。
领取专属 10元无门槛券
手把手带您无忧上云