自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老唐 的专栏

愿有多大、路有多长……

  • 博客(157)
  • 收藏
  • 关注

转载 推荐一个app,收纳杭州最全登山地图!附亲测过的亲子徒步路线推荐

第一次有公众号专门推荐我做的这个“杭州登山地图”app,所以特地转载下,感谢@杭州iKids到了杭州最宜人的季节,秋高气爽,满城桂花香。这个季节当然是不能辜负的,温度适宜,晓风扑面,是徒步爬山最适合的时间。也许有人会说,小孩子爬不了山,其实加一点小“策略”就可以,比如从简单好征服的山开始,感染孩子爱上这样又看风景又锻炼的生活方式;比如让孩子自己打包一个零食盒随身带,走一段吃一段就坚...

2018-09-30 17:33:23 15085 4

原创 为你的梦想和目标去真正付出【时任树熊WIFI CTO时的一次内部分享】

这篇文章原本是发布在树熊网络公司公众号里面的,是在2015.6进行的一次公司内部分享,但由于现在公司公众号转移,原链接已经无法访问了,所以再在自己的博客里面重新贴一下,备忘!聊聊梦想之前聊聊我的经历今晚我们利用每周技术分享会的时间来聊聊梦想、聊聊人生;为了能让大家更好的体会我后面讲的一些收获,我要先聊聊我自己,我接下来要讲的是我人生第一次在公开场合面对这么多人说这些话,在此之前我思考了很久

2018-01-01 17:54:54 1376 1

原创 《Android内核剖析》读书笔记 第13章 View工作原理【动画概述】

从动画效果的影响范围角度看,View系统中的动画可以分为三类:窗口动画:窗口对应的动画,其作用对象是Surface;窗口可以是Activity对应的窗口,也可以是对话框这样的子窗口,当然还可以是直接通过WindowManager.addView()添加的任意窗口;布局动画:指ViewGroup容器对象包含的动画,该动画在ViewGroup对象中定义,但实际上影响的却是该容器内的子视图,其本

2013-07-15 10:38:51 4465 1

原创 《Android内核剖析》读书笔记 第13章 View工作原理【View重绘过程】

计算视图大小的过程(Measure)视图大小,准确的来说应该是指视图的布局大小;我们在layout.xml中为每个UI控件设置的layout_width/layout_height两个属性被用来设置父视图给当前视图分配的“窗口”大小,为了开发的方便和对不同屏幕分辨率的兼容适配对这两个参数的赋值一般都使用相对值(也可以使用具体值,比如100dp),比如WRAP_CONTENT/MATCH_PAR

2013-07-09 10:58:34 5694

原创 《Android内核剖析》读书笔记 第13章 View工作原理【View树遍历】

导致View树重新遍历的总体诱因遍历View树意味着整个View需要重新对其包含的子视图分配大小并重绘;一般情况下导致重新遍历的原因有三个:其一,视图本身内部状态发生变化,比如显示属性由GONE到VISIBLE;其二,ViewGroup中添加或删除了视图导致需要重新为子视图分配位置;其三,视图本身的大小发生变化,比如TextView中的文本内容变多变少了;在代码层面这三种情况最后都会直接或间接调用到View中的三个函数:requestLayout/requestFocus/invalidate;由于是V

2013-07-09 10:44:47 5081

原创 《Android内核剖析》读书笔记 第13章 View工作原理【触摸消息派发】

相比按键消息,触摸消息也是由ViewRootImpl.WindowInputEventReceiver实例负责接收,然后判断消息类型之后执行不同的方法,对于触摸消息就是执行deliverPointerEvent(.)方法;不同点主要以下几点:触摸消息由消息获取模块InputManagerService直接派发给应用程序,而无需经过Wms内部的预处理,最新的版本中仅仅会对当屏幕关闭时执行

2013-06-25 18:43:37 4996 1

原创 《Android内核剖析》读书笔记 第13章 View工作原理【消息类型与按键消息派发】

View是android系统的三大核心基础组件之一(另外两个分别是Ams和Wms),我们经常提到的Activity/Service/Content Provider/Broadcast Receiver这是应用开发层面的四大组件;View提供了对页面展示各种元素的一种抽象,android系统中用到的所有UI控件(比如按钮、文本框等)都是继承于View类,他主要完成两块核心功能,其一:针对各种按

2013-06-25 18:38:00 4607 1

原创 《Android内核剖析》读书笔记 第12章 屏幕绘图基础

Android中的GUI系统是客户端和服务端配合的窗口系统,即后台运行了一个绘制服务,每个应用程序都是该服务端的一个客户端,当客户端需要绘制时,首先请求服务端创建一个窗口,然后在窗口中进行具体的视图内容绘制;对于每个客户端而言,他们都感觉自己独占了屏幕,而对于服务端而言,它会给每一个客户端窗口分配不同的层值,并根据用户的交互情况动态改变窗口的层值,这就给用户造成了所谓的前台窗口和后台窗口的概念;

2013-06-20 19:51:34 3428

原创 《Android内核剖析》读书笔记 第8章 创建窗口的过程

本章主要关注的是在APP应用内部页面内容的加载过程,不涉及远程服务端Wms内部逻辑(这部分内容详见《第14章 Wms工作原理》);首先回顾下第6章所介绍过的一些有关窗口相关的内容:对于Wms管理的窗口,具体指的是View,而不是Window类,Window类只是提供对窗口操作的一组抽象API而已;每个Activity都会对应一个窗口IWindow,当Wms收到用户消息之后会将消息派发到

2013-06-19 17:11:54 4833

原创 《Android内核剖析》读书笔记 第7章 理解Context

Context在我们实际开发中被广泛用到,比如 startActivity(…)/getResources()/ getSharedPreferences(…)/getSystemService(.)等等;书中把Context理解为一个应用场景,一个Activity实例就是一个应用场景,一个Service实例也是一种应用场景,只是他木有前台界面而已;与Context相关类的继承关系如下:

2013-06-09 11:41:28 3434

原创 《Android内核剖析》读书笔记 第6章 应用框架Framework概述

其实android就是基于Linux内核的一个GUI系统,只是他运行在手机上,各种资源都比较有限,而且他不仅处理按键事件,更主要的是处理触控事件;其整体架构可以参考下图(此图来源于网络):本章主要是介绍其中的应用框架层(Application Framework),前面的章节已经提到android是基于多进程设计的,先看看如下手稿图(mac下没找到顺手的UML画图工具),其类名基于4.

2013-06-08 18:40:33 4185 1

原创 《Android内核剖析》读书笔记 第5章 进程间通信核心框架Binder

Binder:英文的意思是别针、回形针。我们经常用别针把两张纸“别”在一起,在android系统中,Binder是用来完成进程间通信IPC的基础框架,即把不同进程“别”在一起,便于各个进程之间可以相互传递消息;如果做过Java服务端开发的话,你也可以理解成一种RPC调用,即在本地直接调用其他进程中的功能;理解该机制将有助于更好的掌握后面的android整体架构设计,因为核心模块之间的通信都是通过B

2013-06-05 19:56:51 3844

原创 《Android内核剖析》读书笔记 第9章 Framework的启动过程

对于Linux内核来说,其实Android系统就是一个普通的Linux应用程序而已,只是在init.rc中被设置为默认启动;Framework运行环境综述任何系统启动过程的本质都是要建立一套系统运行所需的环境;android系统的启动其实就是建立dalvik虚拟机运行所需的环境,总体如下:android系统启动的第一个进程为zygote,意思为“受精卵”,因为接下来所有的D

2013-05-16 16:01:39 5093 1

原创 《Android内核剖析》读书笔记 第18章 Android编译系统

Android编译系统的核心仍然是第1章末尾介绍的Make,基于此建立了一个适合于Android自身的编译框架,该编译框架由各种.mk文件、shell脚本、python脚本共同组成;通过该框架各个系统模块可以单独编译或打包、也可以根据一定的规则进行整合打包输出;框架的核心设计理论有如下几点:建立在Make之上,定义好各类target;并适当引入python、shell脚本;基于COC(

2013-05-09 18:53:49 5027

原创 《Android内核剖析》读书笔记 第3章 源码下载及开发环境配置

有关源码下载与开发环境配置权威的请参见http://source.android.com/source/index.htmlAndroid源码的编译只能在基于Linux的系统中执行,本人是在Mac系统下进行的尝试;Mac系统中开发环境的相关准备Mac系统默认的磁盘文件系统格式是不区分大小写(Case-insensitive)的,而android源码的编译必须基于区分大小写(Ca

2013-05-08 15:30:13 3394

原创 《Android内核剖析》读书笔记 第2章 Java基础&异步消息处理模型

dex文件:是对使用标准的Java编译器编译出的class文件内部的各种函数表、变量表等进行优化后重新打包得到的一种文件格式;DexClassLoader:专门用来加载特殊的Class文件格式dex的类装载器;JNI(Java本地接口)调用机制需要使用到JNI的场景主要包括:调用底层驱动、需要高效大量数据处理、复用某些已有代码;Java中调用C函数时,双方的名称需要有一个映

2013-05-08 15:26:39 3189

原创 《Android内核剖析》读书笔记 第1章 Linux基础

Android的底层任务管理及驱动都是基于Linux系统的;Linux系统使用的文件系统与Windows(存储类文件系统)差别很大,他采用的是根文件系统(rootfs),特点如下:Linux系统中所有的资源都是文件,比如磁盘、U盘、内存、网络等硬件设备,当然还有磁盘上的数据文件;sys/proc/dev这三个目录他们对应的不是存储空间,而是设备文件,由内核及相应驱动程序维护;存储类文件系统

2013-05-08 15:21:00 3354 1

原创 Web安全漏洞之:JDK1.5环境下扫描远程调试端口导致JVM崩溃【JDWP exit error JVMTI_ERROR_NONE(0)】

问题描述:<br />对运行在JDK 1.5版本下的java应用服务器进行端口扫描,扫描的方式可以用相关扫描软件,最简单的是直接用ping/telnet命令,有闲情还可以自己写一段代码进行socket连接,扫描时会发现java进程crash,经测试百发百中;查看运行日志显示:<br />ERROR: transport error 202: handshake failed - received >GET / HTTP/1.0< - excepted >JDWP-Handshake< ["transport

2010-08-21 13:14:00 18862 1

原创 优雅绝妙的Javascript跨域问题解决方案

关于Javascript跨域问题的解决方案已在之前的一片文章中详细说明,详见:http://blog.csdn.net/sfdev/archive/2009/02/13/3887006.aspx;除了文中提到的3种解决方案之外,在今年的baidu salon分享会上黄方荣主讲的《WEB数据交互的艺术》中提到一个非常优雅绝妙的解决方案!话不多说,直接上解决方案原理图:该图要解决的问题说明如下:在AAA.com域名下的index.htm页面中内嵌了BBB.com域名下的一个页面index.htm,正常情况下if

2010-08-12 15:18:00 16736 2

原创 09年收获之:什么是真正的客户第一

从我们到itbu之后,我们一直强调工程师走向前台,要加强自己商业sense的培养,更多的从客户的角度去思考和看待问题!这也是我们对客户第一这条价值观体会的具体落地,那我们有些什么方法来让我们更好的从客户角度去思考问题呢?那就是多给自己打上几个问号,俗称3+1; 当我们决定要做某个功能时,请先问自己几个问题: 1、该需求从何而来?客户直接反馈、还是技术支持提交…… 其实这主要考察的是我们是否有稳定的需求收集渠道和机制;我们要尽量听到直接来自客户的声音,避免自己YY,如果你远离了客户,那做出来的功能估

2010-05-10 11:47:00 3364

原创 过去几年的回顾&2010年关键词

不知不觉中,我进入阿里已经4年多啦,回头看看自己走过的路,不停的折腾造就了今天的我,但总结起来我感觉自己是非常幸运的,至少每年的修炼都能让我成长,让我收获,都收获了什么呢? 06年:怀着憧憬加入公司、体验并学会拥抱变化; 07年:个人能力开始爆发并得到高度认可、有过程有结果; 08年:学会帮助其他团队&成员成长、并总结出自己的三个习惯; 09年:学会自己组建团队、果断决策

2010-04-30 11:45:00 2887 1

原创 分享一副现实版抽象画

呵呵,这是在最近一次分享交流会上偶们某位同学现场绘的一副抽象画! 猜猜这是在表现什么?可以透露一些关键词: 6:如火如荼! 7:黑风暴降临! 8:一团乱麻! 9:笑脸背后难掩疑惑! 10:种子发芽! 11:如鱼得水! 12:秋风扫落叶! 1:挥汗如雨! 2:闪电划破长空! 3:狂风暴雨肆虐!

2010-04-30 11:05:00 2295

原创 09年收获之:有一点理解了什么是Mission/Vision/Strategy

自从加入阿里就开始接触这几个词,最开始就听老板说开什么战略会啦,我们的使命和愿景是什么啦?等等,但一直对这几个词的具体含义没啥概念,MS这些东西离我好远,随着时间的推移,自己也开始去开战略会,但有些疑惑始终没法理顺,直到阿软被B2B收购,我们到了ITBU,遇到了Brian,经过几次培训&多次战略会的讨论,我开始有那么一点点理解了,也就是一点点,Brian自己也都说他自己去听过那么多课几乎没有一个讲师能把什么是Mission/Vision/Strategy、以及他们之间的关系讲清楚;可见要真正深刻理解这几个词

2010-04-30 08:56:00 16039

原创 09年收获之:分析与解决问题技巧

从这个Title来看似乎有些大,换句话说就更明确了,其实我们要解决这个问题:拿到领导给你的任务之后你怎么做? 总结起来三个步骤:一停、二看、三通过! 一停:核心是要把将要执行的任务进行再次陈述,注意是陈述! 陈述的目的是为了能够更好的理解老板的任务目标,确保我们理解的和老板想要的是同一回事!有时候老板可能也不是特别清楚自己的目标是什么,那此时我们更要帮助老板把目标明确化; 陈述的内

2010-04-30 08:43:00 1619 1

原创 阿软研发中心给我留下的良好精神资产盘点

之前我一直在问自己一个问题:你Happy吗?如果把这个问题放在过去3年的阿软技术部工作生活的话,我的回答是:Yes!那到底哪些因素让我回味,我罗列一下,只是个人意见,不带任何政治色彩,供大家拍砖!如果大家也认可,我觉得可以继承和借鉴! 有一位非常有个人魅力并且能让每个人都能感受到这种魅力的老大; 敏锐的商业嗅觉、最易懂的语言描述、非常富有激情的演讲、最亲民的疯狂、数独/斗地主的

2010-04-27 11:37:00 1762 2

原创 截止09.6月的自我评价关键词

前段时间对自己进行了一次盘点,总体感觉对自己毕业之后这几年的工作还算不错,也取得了一些阶段性的成果;总结起来自评有2组关键词:其一:常想/敢想/悟透其二:勤奋也咨询了一些我周围的朋友&同事,缺点不少,但对于这两点还是大致比较认可的,呵呵;

2009-10-16 17:08:00 2534 1

原创 让我有Exciting感觉的汉字之:痛

大学时代的那一次触电《扛》让我学会了勇于承担责任!至今已经好几年过去了,自己在这段时间内也进步很多,记住了很多有吸引力的词汇,但是还真没有一个词能像当初吸引我那样有触电的感觉;今年7月底,我们阿里软件管理软件事业部整体被B2B收购,我们也从阿软加入到了B2B的ITBU事业部,借着年底开战略会的机会有幸接触到了Brian(ITBU的老大);短短的1个月时间里面,2次战略会讨论,让我收获了

2009-09-08 19:13:00 1280 1

原创 让我有Exciting感觉的汉字之:扛

让人有Exciting的感觉,这个可能每个人感觉不一样、体会也会不一样,我自己也很难用语言来描绘那种feeling,但简单来说就是当听到这个字的时候你的心为之一振,脑子里明显感觉到这个词给脑神经带来的冲击!第一次感觉到这个词应该是好几年前的事情了,在合适的时间、合适的地点、合适的背景下面,让我经历了这第一次!扛这个字在字典上的标准解释我不清楚,当时他深深触动我并让我无法忘怀,主要有

2009-09-08 17:24:00 1387 2

原创 JDK5.0中JVM堆模型、GC垃圾收集详细解析

前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的OOM了!问题虽然蹊跷,但也趁此机会再次对JVM堆模型、GC垃圾算法等进行了一次系统梳理;基本概念堆/HeapJVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Windows

2009-08-25 15:49:00 12238 7

原创 64位Linux上安装Memcached详细步骤

由于32位操作系统下面单进程最大内存使用不能超过2G,而我们用Memcached经常需要使用更大的内存空间,所以选择64位的Linux版本是必须的,64位OS下的Memcached安装和32位OS下差不多,只有一个地方稍有不同,详见下面的红色字体部分。我们以版本memcached-1.2.6为例,对于其他版本替换相应版本号即可;下载地址:http://www.danga.com/memcached

2009-08-20 19:59:00 4886 1

原创 探讨:研发中心应该包括的核心元素模型

在老叶还未离职的时候,曾组织过一次讨论:关于一个好的研发中心应该是个什么模样?应该包括哪些核心元素?要达成怎样的目标?怎么去做?以下是当时我的一些思路整理:产出:强调结果、成就感 Ø  技术型产出:梦想、期望、目标! ¡  X-Cube、X-Engine、X-Task……¡  Udc、Ddb……¡  SIP、UDB……Ø  业务型产出:现实中难得的安慰! ¡ 

2009-08-03 14:26:00 2291 1

原创 Spring中集成Quartz时遭遇Failure obtaining db row lock异常

今天在一个新的项目中用Spring集成Quartz来进行任务调度,和以往一样,配置好JobDetail、Trigger、SchedulerFactoryBean启动,却遭遇到如下异常信息:org.springframework.beans.factory.BeanCreationException: Error creating bean with name sfb defined in UR

2009-07-18 17:44:00 34769 4

原创 网店版重生系列:多数据源单sqlMapClient导致NullPointerException问题跟踪

从前面的《网店版重生系列:都是Spring配置中自动注入惹的祸》中我们可以看出一些有关datasource、sqlMapClientTemplate、sqlMapClient的相关配置信息;整体而言,采取的方式为:其一,单实例sqlMapClient,只配置configLocation属性,不配置datasource;其二,sqlMapClientTemplate中配置动态datasource、s

2009-06-20 17:00:00 4315

原创 网店版重生系列:因为webwork.configuration.xml.reload遭遇Web应用性能测试瓶颈

网店版重生项目中,因为我们要将最主要的核心数据由Oracle迁移到分布式Mysql中;虽然说业务逻辑不进行任何改动,只是将数据源由单一的Oracle改造成基于Mysql的动态数据源,但为了保险起见,我们还是要求做一次性能测试,但怎么圧呢?这个系统已经2年没有比较大的系统变动了,但是用以前的性能测试结果来和新系统做对比,大家都觉得不那么匹配,所以我们决定:对现有的老系统的关键模块重新进行一次压力测试

2009-06-14 15:31:00 1945

原创 网店版重生系列:Linux下Jboss启动、关闭、端口配置等常见问题FAQ

单台Linux服务器中如何部署多个独立应用,即多个应用不能run在一个jboss实例中?换言之,这个问题也可以这样描述:在单台Linux服务器中服务启动多个Jboss实例?默认情况下,jboss启动时加载server/default/目录下的配置,要实现多个实例的启动,主要是解决端口冲突的问题,因为一套端口只能被一个应用占有;一般来说,我们可以在Jboss启动时通过-Djboss.server

2009-06-13 18:14:00 14070

原创 网店版重生系列:回头看Jboss配置项CatchSystemOut、Java2ClassLoadingCompliance、UseJBossWebLoader

最近一直忙于做一个纯技术驱动的项目:网店重生!就是要把网店版改造成为基于Mysql的分布式应用;由于在过去的1年半的时间里面,网店版都没有怎么发展,只是一些例行维护;此次要这么大规模重构的确是一个不小的挑战,那在这个重构过程中,我们也再次遇到了当初的一些老问题,但由于以前的主力开发人员早已经不在一个团队里面了,所以很多的小问题还是让我们费了一些力气,趁此机会将这个过程中遇到的一些小问题记录下来;

2009-06-06 16:59:00 6356

原创 网店版重生系列:都是Spring配置中自动注入惹的祸

在对Spring Container管理的bean进行配置时,有一个很好用的功能就是自动注入,可以根据不同规则对bean所依赖的bean进行自动set,相信最常用的就是设置default-autowire="byName"这种方式啦;这样我们在进行配置时就可以减少很多的xml代码、当我们在Java代码中新增或减少bean的注入时就无需再对xml配置进行同步变更(针对采取xml配置的方式,若采用An

2009-05-03 12:04:00 7393 3

原创 基于Spring打造简单高效通用的异步任务处理系统

背景随着应用系统功能的不断新增,而某些功能的实现对实时性要求并不是那么高,但是逻辑却很复杂、执行比较耗时,比如涉及外部系统调用、多数据源等等;此时,我们就希望可以让这些复杂的业务逻辑放在后台执行,而前台与用户的交互可以不用等待,从而提高用户体验;另外,从系统架构这个层面来说,我们也希望按照不同功能来拆分,以保持各个系统之间的低耦合,当一个系统出现问题时不会影响到其他系统,并且对于独立的各个

2009-04-08 09:39:00 23764 17

原创 开发人员需要熟知的常用Linux命令之八:Version、Kernel查看

当我们需要在Linux系统中安装一些软件而去下载安装文件时,一般都需要确认到底下载哪个版本的安装包,这就需要我们知道自己的Linux系统到底是什么版本、什么内核,常见的版本、内核查看命令或者文件有如下几个:version、uname、lsb_release、issue、redhat-release;查看内核版本:[admin@mall_dev4 ~]$ cat /proc/version

2009-03-26 20:36:00 2972

原创 开发人员需要熟知的常用Linux命令之七:Gzip及其常用打包、压缩、解压命令

gzip 命令减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。 语法:gzip [选项] 压缩(解压缩)的文件名该命令的各选项含义如下:-c:将输出写到标准输出上,并保留原有文件。-d:将压缩文件解压。-l:对每个压缩文件,显示下列字段:压缩文

2009-03-26 18:45:00 2897

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除