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

以金山界面库(openkui)为例思考和分析界面库的设计和实现——问题

随着物质生活的丰富,人们的精神生活也越来越丰富。人们闲暇的时间也相对变多,于是很多人就开始寻找打发时间的方法。其中电视便是其中一种非常重要的消遣方式。假如我们打开电视机,看到了一个电视台正在播一部我们之前没看过的,正在一招一式进行打斗的武侠片;另一个电视台正在播一部之前也没看过的,正在重复太极推手的教学片。我想大部分人会选择那部武侠片。为什么?因为那是一个动作体系,不会让人厌烦。而那个推手教学片,可能非常高端,可能非常有内涵,但是总是让人缺乏点新鲜感。我之前更关注技术的细节,而今天开始,我将开始分析一款开源的软件界面库。这系列文章不再拘泥于一些技术细节,而从一个思路的方向去分析这个库。         我介绍这套界面库是目前开源的金山卫士开源计划中的一部分。具体的访问地址是 http://code.ijinshan.com/。其中代码的下载SVN地址是https://openkui.googlecode.com/svn/trunk。我将分析的是版本号为54的版本。(转载请指明出于breaksoftware的csdn博客)         在分析这个库之前,我们可以闭上眼睛,清空大脑,思考一下:如果自己要设计和编写一个界面库,将如何规划和设计?将会遇到什么技术问题?将如何做出一些选择?

02

Android开发笔记(七十)反编译初步

Android的内核源码很大,有几个G,仔细找找网上有许多下载的地方。作为普通开发者,一般不需要阅读内核源码,但一点都不了解好像也不行,因为实际开发中有时候就得会那么一点点。下面几个源码目录,是开发者在实际开发中可以参考的: \system\core\toolbox : linux后台命令的源码,如ls、rm、kill、chmod、top、netstat等等。 \packages\apps : Android自带的应用程序的源码,如计算器、日历、相机、浏览器、联系人、音乐、拨号、设置等等。 \sdk : Android开发的辅助工具源码,如eclipse插件、emulator模拟器、ddms管理工具、draw9patch点九制图工具。 \frameworks\base\core\java\android : 提供给开发者的SDK开发框架的源码,基本与“Android SDK Manager”上下载的SDK一致。

02

微服务架构之我感

我个人感觉,新技术会不断的出现,但是在没有这些新技术的年代,一样问题有办法解决,一样有很多成功的产品。有些公司做产品,方向、客户需求、有没有人用都不一定,就开始在技术上追求高大上,什么“分布式、可拓展性、容灾性”,就像“大数据”一样,这东西火爆不是说你在做大数据,你会大数据技术就成功了,数据的价值起了决定性的作用,靠网上抓取数据这样别人也可以轻易获得的数据,准确度、精细度、数量都无法保证,最终难出有价值的产品,往往是自己意淫了一把似乎站在了科技的最前沿,微服务书里也应该说到了,不是所有的场景都适合微服务,微服务等分布式系统带来的架构复杂性没有足够的技术积累,本身就是加大了创业初期的风险,增加成本。本人没有去过大公司,只混迹过小公司,就这些年说,小公司做的东西里能够做出来功能正常、能被客户认真使用的产品或项目的都很少!!

01

Android进阶-NDK技术

在学习ndk技术前,我们需要先了解一下JNI(Java Native Interface)技术,JNI技术是一种实现Java代码和C/C++代码之间交互的技术,它提供了一组编程接口,使得Java程序可以调用C/C++代码并与其进行通信。通过JNI技术,开发者可以将C/C++代码嵌入Java项目中,并在Java代码中调用这些C/C++函数。那么,NDK技术和它有什么关系呢?NDK是一种用于开发Android应用程序的工具集,它允许开发者使用C/C++编写部分或全部的Android应用程序代码,以便提高性能和访问底层系统功能。这样看起来NDK技术和JNI技术是一回事,就是为了实现Java调用C/C++或C/C++调用Java。确实如此,用一句话概括它们之间的关系就是:开发者使用NDK技术在Android应用程序中编写C/C++代码,并将其编译成共享库(如.so文件),然后使用JNI技术在Java代码中加载并与这些C/C++代码进行交互。

03

thrift学习笔记

最近看到项目有用thrift,值此周日闲着也是闲着,先了解一个大概,后边在项目中再深度感悟吧。这里首先介绍一下thrift是做什么的,一般的我们都知道程序不是简单的自己处理自己的数据,很多大型系统往往需要跨系统进行调用,但是跨系统调用往往有一个问题就是你怎么调用的,聪明的小伙伴也许直接想到了http,但是有没有想过http有什么问题?首先是安全问题啥的,还有就是要不断的json到对象的互相转化什么的。其实都很费时间,如此一来就造成了技术问题导致的响应时间问题。所以对于http来说固然是好,但是否有更好的办法?我们知道网络传输是一层一层的协议的包装。那么显然最快的方式是放到最外层了,省去不必要的链路解析工作。但是我们的tcp/ip肯定是要保留的,因此我们的办法要么就是重新造一个tcp/Ip,要么就是省去最上层的应用层协议,直接怼着tcp来干。这样不就节省了协议解析的时间时间么,对我们的rpc远程调用的本质就是这意思,用http来走的话不是不可以,大如springcloud也都是采用的http来走的,但其实上我们还可以直接走tcp,但是tcp的肯定需要服务端和客户端,因此走tcp的问题就是开发比较费事,那么有没有一套工具让我们开发变快,也就是帮我们自动生成,我们简单的修改一下就可以直接用了,答案是有的,这块比较出名的是facebook开源的thrift。这个thrift就是一个开源的能够生成跨语言rpc调用的客户端和服务端的代码。听起来很厉害,其实本质还是上边说的这些想法的一种实践,主要是thrift能跨语言生成,也就是说我们可以用java去rpc调用python的接口,甚至是C#的接口,这块你是否感觉thrift能够让你的应用跨语言进行rpc调用的功能呢,答案是yes。Thrift解决的痛点问题就是跨语言的rpc调用问题。当然thrift定义了一套规范,这就是thrift协议。

01
领券