54chen Twitter Memo 2010-12-05

    RT 李靖威 : JavaScript和Java的关系,就像雷锋和雷峰塔一样。
# latin1写入的utf8内容在java纯unicode读取兼容的办法,同步这张表,在导入的时候,加上set names utf8。 # 为兼容项目,逼着jdbc连接latin1的数据,冒似没啥好办法 # 忙碌了一天,又搞了一个机器人。 # http://gb.cri.cn/mmsource/images/2010/11/28/60/16025789606741948624.jpg 关于韩国抗议那啥这个图是twitter代表? # 一说php,就有许多朋友不愿意了,要拿facebook来压我,但其实fb有Python、Perl和Java,以及一些gcc和Boost,有thrift有corba,有这么多东西,为什么只看到你用习惯而非喜欢的php呢? # 哥对常年从事php开发,不想看看java c++ erlang,而且坚定认为php可以控制卫星的朋友,道一声,你们辛苦了。 # 新浪微博的体检结果出来了,说是memcache崩了。 # 新浪微博技术提示:php代码逻辑太深,没有中间层,过分依靠messageQ,没有异步,关键还有,没有rose这样优秀的并发处理方式。人人网最长时间的一次跌机也只是两年前的天津机房断电。 # 新浪微博比起twitter还是技差一筹 # 好相机//Fenng: 松下 LX5 是一款好相机阿... http://tech.163.com/digi/special/digirllx5/ # 今天晚上8点,北大医学院,一周一度的小米蓝球会,go on. # 不管是ganglia cacti应该都有现在的接口发报警短信吧,hack一下。 # squid缓存失效之谜:一步步提高squid缓存命中率办法记录 http://goo.gl/fb/pt8Z9 # squid缓存失效之谜:一步步提高squid缓存命中率办法记录 http://goo.gl/fb/7oWHT # 求高手示意:如何把一个1.jpg?uid=1和1.jpg?uid=2的请求打到squid后让squid认为都是1.jpg?squid nginx方法都可以 # 困扰几天的squid缓存失效之谜:前端人员把xx.jpg?uid=123搞到程序里了,于是缓存命中率大降。 # squid启动了五小时之后,in流量终于开始松动了。 # 基于大家技术背景不整齐的情况,看来得来一场php VS java的群邮件讨论,如果基调不确认,将会出现各种php java erlang python都有一点的项目。 # 最近博客里出现一堆的无意义的人肉评论,地址里都写了一些处国网站,水军害人不浅,都不知道我博客是人肉antispam的吗。 # squid的缓存能力,与nginx相比,会是如何,做个试验。 # 54chen Twitter memo 2010-11-28 http://goo.gl/fb/JGZuU #

Squid缓存失效之谜:一步步提高squid缓存命中率办法记录

手里有个前端自己做cdn的服务器,结果发现进出流量相等,这是个诡异的事情,因为一般来说,做前端缓存的机器,流量基本上很长时间里都是出多进少的。
一开始的时候,是nginx做的nginx_cache,发现进出流量相等后,换上了squid 3.0,使用命令:
squidclient -p 8088 mgr:info (启在8088)
发现如图所示的几个命中率,相当低下,一般的WEB服务器缓存30-60%是正常的,而CDN作用的应该说80%以上才是正常的。 http://img03.taobaocdn.com/imgextra/i3/T1nU8SXdFrXXcxpD.U_015909.jpg 刚启动squid的时候,个人认为是因为缓存文件还没有拖动到前端来,所以是正常的,但结果过了一天后,还是没有看到进流量松动。

第二天来,硬盘已经过了10G了,还是不行。通过cat access.log来看,cat access.log|gawk '{print $4}'|sort|uniq -c|sort -nr
发现TCP_MISS/200相当的多,再看流量图,进出还是没有变化。杯具。

于是乎,想到了直接tail -f access.log,看看究竟都有什么东西在访问。

一条接一条的xxx.jpg?unid=1111触动了我(公司用来做用户行为分析的参数),就这样白花花的浪费了缓存。

解决方案: 幸好,squid前面,还有一层nginx,于是考虑在nginx上做转发,将所有的xxx.jpg?xx=xx全部转到 xxx.jpg去,过滤掉url中的参数。尝试了几个不行,内置的参数$url $request_url都不可行。
只有一招利用403来跳转的可行。

location ~* (.jpg$)|(.png$)|(.gif$)|(.mp3$)|(.txt$){
proxy_pass http://squid;
proxy_redirect default;
if ($is_args)
{
return 403;
error_page 403 =200 $scheme://$host$uri;
}
}

重启nginx,看到了进流量图明显大幅度下降。

http://img02.taobaocdn.com/imgextra/i2/T14F8TXolXXXXOWxsV_020704.jpg

54chen Twitter Memo 2010-11-28

    erl:you_known().
# 关于从离开的公司挖角,个人认为是职业道德的问题,出于私人朋友关系可以告之自己的现状,但断然不会直接对过去的兄弟夺下海口胡乱挖人。--企业如人。 # selinux害死人 # 一直都觉着messageQ是个很土的东西,等于把服务都押宝到一个地方,即使分布了它,还是一个中心网络节点 # 新浪微博不给力了。 # RT @theodore666hu: 淡酒浓茶:将来,我们都会拿着百万月薪,吃着五万一棵的白菜。周末的早上,我们从每平米一亿的家里出发,坐着公交车,在路上堵八个小时,赶着去看晚场电影:《哈利波特85之哈利波特与发改委》 # http://www.54chen.com/_linux_/venture-company-tech-ref.html 增加选型:流量监控使用ganglia或者cacti # http://www.54chen.com/_linux_/venture-company-tech-ref.html 创业公司技术选型参考,上厕所的过程想起来wiki知识管理也是很重要的,于是更新 # RT @kejunz:backbone提供一套完整的前端MVC框架,适合开发像新版 twitter这种应用。相信今后这种开源框架会越来越多,又进化一步 http://documentcloud.github.com/backbone/ # That this will likely be removed from m2e core before 1.0 is out.m2eclipse的bug系统里老毛子说的,为啥一个工程里多个module是不推荐的? # 创业公司技术选型参考 http://goo.gl/fb/vsucb # Beanstalkd 类似memcached机制的 Linux消息队列服务,速度飞快。 # RT@guyu: 一位女子因为老爸欠钱还不上,无奈只好嫁给了债主。新婚第一天晚上,女子对得意洋洋的新郎说:我嫁给你,是因为我老爸欠你的钱,你别太得意! 第二天凌晨,女子睁开眼睛,摇醒熟睡的新郎,说:我爸到底欠咱们多少钱?可不能就这么算了。 # RT猫扑话题 : 金正银站在岸上对着韩国士兵高喊着:“对方听好啦,我爸是李刚!”,旁边军师一听急了,忙低声对他说:“将军,您父亲姓金呢。”,金正银一听,连忙改口: “我爸是金刚!” # 逐渐找回打球感觉,昨日中场跳投命中率提升至百分之八十以上 # RT坦克:打北边来了个胖子,手里拿着个炮子,打南边来了个棒子,手里抄着个棒子,北边来的胖子拿手里的炮子射了南边来的棒子一炮子,南边来的棒子抡起手里的棒子抽了北边来的胖子一棒子。 # 有一些机器,有nginx、php、erlang、beans talk message queue这些服务,请问怎么分步比较合理? # 最恶心的事情要属于下到“网友演唱”的老歌。 # 听老歌的感觉很不错,工作几年来第一次上班时间听歌,会不会越听越感性了,不能理性研究问题了? # 更新了个人简介:大负载构架挑战者,不折不扣的blogger,曾经还是业余老湿,梦想把技术变成科学,博客-五四陈科学院:http://www.54chen.com,现在奋斗在无线互联网。 # 看到一个blog,对keystore、jvm等见解都很深刻,还有和国外作者交流的内容,再一看日期,最后一篇发表于2008年,认识太多的高手,因为生计搁浅了技术,希望自己和哥学社的同志们都要坚持写。 # 54chen Twitter memo 2010-11-21 http://goo.gl/fb/Phk0Q # 54chen Twitter memo 2010-11-21 http://goo.gl/fb/6vtuq #

创业公司技术选型参考

54chen-创业公司选择技术 java推荐框架 web项目来说,spring、struts是必选,当然有更加好用的,推荐来自疱丁分词作者王志亮在人人网的rose框架,使用上手快,配置少,是创业公司java必备。

php框架推荐 zend framework,或者直接写个简单的框架,php的框架更加倾向去规范代码,让所有项目在新人加入时快速上手。

代码版本控制 subversion是必选工具,简单易学,git也开始流行,也是可选方案。

jar包依赖管理 这是针对java项目,还在使用ant的朋友,可以考虑换换了,特别的,如果你的公司在很快扩张的时候,这个选择能让未来避开依赖混乱,遇事集体更新困难的困境。

公共代码建立 长期可遇见的公共部分,比如用户信息获取,memcache管理,毋庸置疑地需要提供公共的方法,越早越好。

代码可扩展 这就考量上面选择框架的气候是不是合理了,这里可扩展是指,在负载越来越大的时候,要能很轻易配置读写分离,rose在这方面做得很优雅,只需要简单配置就梦把看的代码用上新的数据源。

code review 有许多好用的系统,比如Review Board等,让参与者都知道修改,并且在最早期发现问题。

bug系统 jira、Bugfree等等,用系统控制流程。

培训体系 技术需要交流才会有进步,团体的进步才是真的进步。所以尽早建立起内部的培训体系非常有必要,同时也是活跃团体气氛的很好方法,其频度控制在两周一次最好。

知识管理 php+mysql的mediawiki是首选,每个优秀的工程师,都必须首先是一个完全熟悉wiki语法擅长写wiki的工程师。早年搞了一个把mysql换成postgresql的方案见 http://www.54chen.com/php-tech/mediawiki-pgsql.html

项目管理 从项目初期的demo设计>产品设计>技术架构>技术方案>技术实施>测试>理程碑>上线,每一环都需要详细控制,实施Scrum或者是Scrum变体,都是不错的方案。任由团队想到哪里做到哪里的结果是无法预估商业产品的出炉。

流量监控 流量监控比较出名的有Cacti、ganglia,安装上ganglia要复杂一点点,尽量用yum安装,ganglia的集群和数据功能相对cacti要强大一点。

服务器操作系统 daxuxu同学推荐debian,不过我的工作环境基本都是centOS,用习惯了一个很难改变,个人感觉debian系统的环境相对复杂一些。

54chen Twitter Memo 2010-11-21

    每个周六也在干活的程序员上辈子都是折翼的天使
# 盯上了resin Quercus java php这几个关键词,求用过的人提示潜在危险。 # 思考如何搞一个大油桶,里面装php,油桶的管子用java连到数据连接池。 # 手机服务开发打败了传统WEB开发,前台端站在了同样的高度,不论是前还是后,都大有可为。 # 早上看到新闻“中国水军站上亚洲之颠”,一震,原来是亚运会消息,不是微博上的水军。 # 被一个恶劣环境的机器上搞ganglia搞得半死之后,被cacti代替了。。。 # 在没有yum的环境里安装ganglia,被依赖折腾得死去活来 # 很多小公司都在使用myiasm的表,因为使用的WEB代码效率不高,只能从db上压缩,但其实用innodb后做好web代码效率抗压性能更好。 # 《工会法》规定了全中国只有一个合法工会——中华全国总工会,哥学社也差不多是个“工友会”,不会违法吧。。。 # 在新浪微博的“名人堂”里,按照字母排序,我以“54chen”为用户名,排到最后一个“其他”类里,占尽天机,哈哈 # 考虑一种轻型的架构,灵活机动随时要变的部分用php,稳定不长期不变追求性能的部分用java,这应该是一个不错的选择。 # 和小米的兄弟在北大打了两个多小时的球,动不了了 # 被subclipse对svn+ssh的支持搞死 # 4G内存的机器,很给力哇 # 追求分布式:为什么要把messageQ这样的位置放在一个固定的位置?如果每个java代码里自己维护queue,每个服务器都是Q # 在ubuntu下,linuxqq一年多没有维护了,腾讯太恶了,没办法,eclipse起android虚拟机,加载手机QQ # ubuntu下Empathy十月起无法登录msn的解决办法 http://goo.gl/fb/TppTH # 以前在人人网我一个xp电脑一个ubuntu电脑,现在是两个ubuntu了,将要彻底告别win了 # @小米,这里的大侠们统一乌班图,cool # 休息了一个多星期,明天就要投入新的战斗,欢迎无线行业、手持终端行业的前辈互加指点。 # 54chen Twitter memo 2010-11-14 http://goo.gl/fb/wqGzy #

ubuntu下Empathy十月起无法登录msn的解决办法

ubuntu

作为ubuntu深度用户,我(54chen)在几个星期前就有网友来问过,msn登录常常会挂掉,甚至到现在已经无法再登录,受影响的范围很广,最新的10.10也是一样的,原因可能是msn单方面更新了接口,下面提供一种解决办法(以10.04lts Empathy 2.30.1.1 为例):

#vim /usr/share/pyshared/papyon/service/description/SingleSignOn/RequestMultipleSecurityTokens.py
找到第24行注释掉:
#CONTACTS = ("contacts.msn.com", "?fs=1&id=24000&kv=7&rn=93S9SWWw&tw=0&ver=2.1.6000.1")
修改为:
CONTACTS = ("contacts.msn.com", "MBI") (请勿复制,引号有转义)

然后重启,恭喜你msn高昂登录。
附: ubuntu下empathy的msn群显示昵称 点击下载我修改过的文件: http://www.54chen.com/RequestMultipleSecurityTokens.py.gz

gunzip RequestMultipleSecurityTokens.py.gz
sudo cp RequestMultipleSecurityTokens.py /usr/share/pyshared/papyon/service/description/SingleSignOn/

54chen Twitter Memo 2010-11-14

    django的过滤器真好理解,绕了半天才弄明白。
# RT杨晨: lawlingchi 奥巴马回去肯定 要给美国记者说。。中国记者芮成钢,水平不知 道比你们高到哪里去了,我跟他谈笑风生,你们 啊,too simple, sometimes naive! # 早安中国 # 观亚运会开幕直播有感:放炮跟打仗似的。 # 相逢的人会再相逢 http://goo.gl/fb/uyq7h # 杯具,淘宝商城真的在5折吗?真的仅此一天吗?请打开一个购买数量多的商品,再看看历史上的价格,你就知道了。 # 时隔十多年,再品小学课文朱自清先生的《背影》,顿悟,北漂的同学们,常给家里打打电话。小学安排这课文,太早了。 # 马化腾:360做安全只是一个借口,推即时通讯才是目标之一。 http://news.163.com/10/1106/02/6KPATE4G00014AED.html # 低调做人,你会一次比一次稳健;高调做事,你会一次比一次优秀。 # 今次辞职,两次线上流程,一次线下会谈,书面9个步骤,后一次流程22个节点,每个节点涉及人数1-5人不等,2天过去,还没走到关键的交工牌这步,接触的人已经近20人,这是人用的系统吗? # 创业项目大家看是否可行,和知名大学合作,搞“吴刚一号”探火星工程,申请个863计划,然后定期播出发射视频和图片,等差不多时间了宣布成功。关键环节招视频和ps高手以及大学提成 # ccav2的谈话节目,老是以相同的嘉宾,嘉宾都是职业的了 # 经过几个月的时间,我发现自己的微博和推特人数已然相当,还是不翻墙的猛,翻:http://twitter.com/54chen,不翻:http://t.sina.com.cn/54chen # 今日哥学社小聚,腾讯呵呵哥、阿里山鸡,第一次参会,不可否认,哥学社已经成为了高手云集的地方,并且俨然成为了猎头目标。 # 54chen Twitter memo 2010-11-07 http://goo.gl/fb/usSQ2 #

相逢的人会再相逢

离开人人网 一将功成万骨枯。我从金山到雅虎淘宝再到人人网,现在又到了离开的时间。

在微博和twitter很多关心我去向的朋友应该都已经知道了,我已经离开了人人网UGC团队(http://ugc.renren.com),加入了一个创业团队小米工作室(http://www.xiaomi.com)。

过去的两年里,印象最深的是一个个的极客,每一位在记忆中都是宝贵的片段,共同筑起了这些年完整的回忆。

张洁,老极客一名,现在已南下广州,在人人有很长一段时间合作,在人人底层的代码中还经常能看见他的签名。对各种技术保留着独特的目光和见解,nuclear的名字和起源就是他这位极客。

王志亮,赫赫有名的疱丁分词作者,人人网的web框架作者(十分遗憾的是我答应在程序员杂志写写这个开源框架特色的,却没能完成就要离开了),很长时间里我们团队都在是和这位大侠学习框架的新功能和提新需求。

启荣,数天下mysqlDBA,无出启荣之右者。此话出处不详,但的确如此,启荣大侠,人人网头号dba,坚定而妖娆的目光说明了实力。

桃子,新生代的dba,爱好广泛,工作上长期被我这边骚扰,mysql经验丰富。

张章,稳若泰山的头儿,传说精通心理学(江湖传闻),风格温文而雅,勤修历史,带领部分ugc兄弟秘密成立了糯米网。

昊哥,java经验丰富,对项目开发控制管理颇有研究,scrum实施推广者。

烧饼,校内十剑之一。老java人,天生奇骨,拥有shell绝技,ugc所有服务器都是烧饼维护的。

龙哥,绿野爱好者,各种登山露营控,对项目模块层次设计满足古怪需求钻研透彻。

亮哥,恶搞分子,算法基本功相当了得,有各种的小道国家形势消息(并且都已部分得到验证)。

友明,稳重的已婚人士,毕业至今,已经对分布式搜索经验很有积累。

陈蕾,老perl爱好者,超级具有大师级的合作精神,很有爱有两只小猫叫烟囱和挠挠。

小威,准已婚人士,毕业至今成长迅速,注重不长膘常健身,基础知识扎实。

文哲,已婚仍邪恶人士,总能从各种状态中挖出最黄的意思。

明星,超极客产品研究人员,非一般的极致追求人员,精益求精的互联网重度使用哥。

伟博,XOA(人人网SOA框架)作者,对JAVA理解深入,成熟的外表有一颗追求极致的心。

波波,js深度患者,对大小问题手到病除,可以说是没有解决不了的问题。

林总,号js小神童,对前端技术深入摸底,对as同样介于牛a与牛c之间。

靖威,忙碌于全站的页面速度和统一标准,对全站页面的琐碎事情态度相当nice。

涛哥,拥有带三个表的潜力,和蔼可亲,一接触便知涛哥深藏的功力。

志昂,态度温和的常总,常年被一群审核的mm跟踪,能完成各种bt的搜出来删除的需求。

昌总,万花丛中的昌总,有无穷的耐心和爱心,是qa典范。

原谅我没有提到的各位,由于时间和篇幅,无法将所有极客一一呈现。

江湖很小,相逢的人会再相逢。他日江湖相逢,再当杯酒言欢。

54chen Twitter Memo 2010-11-07

http://www.54chen.com/_linux_/androiddev2.html#comments 不可否认,人人网已经在我身上留下很深的印记,“你们家人人”,让我怀恋。 # RT 张征鹰 : QQ长,360宽。 360没有QQ长, QQ没有360宽, 360要绑在QQ上, QQ不让360绑在QQ上,360偏要绑在QQ上 # 哈哈,这个好有创意//RT @tinyfool: 我在盛大创新院,不是创新工厂 RT @simeonlu: tiny 你不是在创新工厂吗 # 继上一推,其实仔细读来,还是能够看得出来水军与真人的,但继续先头的观点,快速推出的东西不严谨,苍蝇不叮无缝的蛋。 # http://www.douban.com/note/98933718/ 昨天的“QQ劝架补丁”已经被“鱼肉”,我不是幸灾乐祸,而是出于一种对快速时尚追捧做法风险的警示。 # 这两天把android开发基础学了个大概,总共学习时间也就两三个小时,手记都写在http://www.54chen.com/上,下个星期休息休息,弄个android上的微博群发器出来娱乐大众。 # http://v.youku.com/v_show/id_XMTk0NzQ3NDA0.html 仔细看这个mv,会有盗梦空间的感觉。 # 看上去twitter的json客户端get时对tweetid的顺序出现了问题,我不得不把代码进行了调整,每次只会从twitter转发一条了。 # 抱歉各位,twitter rss复位导致老数据回溯,刷了你们的屏。 # RT 康伟.kw : 人族跟兽族打的正酣,眼看兽族不顶了,突然天灾军团来了 # 事实再一次证明,不严格测试就推出的东西一定会经受全体网民的BS,昨天的劝架插件一出,今天的客服反馈全是骂声一片。 # android开发入门2:概念建立 http://goo.gl/fb/wBKYz # 群体用户行为是一个很诡异的东西,在经历一次dns问题后流量比原来多了10% # http://im.renren.com/quanjia.html QQ劝架补丁。。。 # 人人网正在经受dns异常中。。。 # 云南昭通数百人骚乱追踪:13辆车被焚毁15人重伤
http://news.sohu.com/20101104/n277114375.shtml?pvid=tc_dee1fbd29d195bbd

凤凰村的民众太牛X了 # 正在用qq2010 beta3和360还没有收到说不能和360共存,修改了系统设置,禁止自动更新。 # RT @jiaoshoutv 东京热终于做出了艰难的决定:如果检测到用户电脑存有一本道的AV,电脑里所有影片都将变成打码葫芦娃或新闻联播。 # 网易的“有态度”被和谐了,title上都看不到了。有个态度不容易。 # 可以想像,老家的亲戚会打来电话,问为什么QQ登不上去了,然后web2.qq.com不径而走。 # 我们来猜测一下:明后天360推出来一个新的工具叫“360++”或者叫“U2”,专门伪装或者隐型360本身,让第三方软件无法检测360的存在。 # 假如用QQ升级后提示要用QQ就要去掉360,大多数人还是选择去掉360,这根本没有竞争性。 # http://im.qq.com/qq.shtml qq的绝交信 # http://www.techcrunchchina.com/6334 怎样用5张幻灯片,在1年内,为2个创业公司,融资3 轮,筹得1000万美元? # 0.7版本的nginx会在高压力下出来400的情况,不知道在0.8版本有否改善。 # http://database.51cto.com/art/201010/231410_1.htm HandlerSockety让单机mysql达到75万qps # RT 猫扑话题 : 昨天过天桥的时候,看到一个乞丐的跪在那里,面前写着“求三元坐车回家”。我走上前跟他说,现在广州公交全免费了。那人听后脸色大变,收拾东西走人了。今天过天桥的时候,居然又看到他跪在那里,面前写着“求三十元打车回家,公交地铁都挤不上去” # 想知道iResearch艾瑞咨询集团的网络广告监测系统是如何得到诸如团购网站访问人数的?难道是在上层路由器上动手脚? # 我把tw2other修改版的代码和wp插件twitter tool合并到了一起,只需要在wordpress后台发推,即可自动完成同步到各大微博和推特。很好用。 # 令人惊艳的团队,我喜欢这个形容词。 # 广州亚运会口号“让我们的广州充满爱”,官方英译为:“Let’s make love everywhere in our Guangzhou!” # RT Can you can a can as a canner can can a can? # 技术文化和惨淡命运 —— 怀念中国雅虎 今天这篇文章火了 # 离职去向为什么要保密?除了商业机密外,一起合作几年的兄弟,告之去向,苟富贵,毋相忘。他日江湖相逢,再当杯酒言欢。做不到可以认为是愤怒离去,在愤怒下的决定基本都是错误的。 # 最后一次在人人网填写kpi表格。 # 国内航班延误4小时以上乘客可获200元现金补偿,此规定一出,以后某些航空公司连原有的住宿都会取消变成200块钱,哪个机场旁边的宾馆有200一晚的房间?更别说延误原因的鉴定了。 # android 开发入门 http://goo.gl/fb/A4X2k # ceo管小事,公司越管越小。 # 很佩服那种一生只做一件事情的人,比如说只做存储研究、只做创业公司,虽然可能硕果累累,但他们坚定的信念要让他们要放弃许多东西。 # 真不知道gfw出于什么考虑,要屏掉这一堆的技术网站,全是文档有什么好防的。 # 54chen Twitter memo 2010-10-31 http://goo.gl/fb/79IdA #

Android开发入门2:概念建立

android 54chen dev

上一记传送门:android开发入门 在第一记中,我(54chen)完成了一个完整的android开发环境,并且简单开发了一个Hello world android程序,在有了一个大概的开发过程的感觉之后,再进一步来学习android开发过程中需要接触到的常识。

android开发表皮几大块 1)extends Activity的Activity类很是奇异,其实这很像是mvc框架中的controller,继承Activity实现的类,它控制了所有的业务逻辑。
2)打开项目的文件夹,你会发现有许多的xml,其中,比较关键的一个是main.xml(layout目录下),它相当于mvc框架中的view,负责了软件界面哪个位置摆放一个什么样的控件,当然了,这些控件都是系统本身的,你可以想像成是html标签里的那些控件一样。
3)values目录下有settings.xml,是定义了一些字符串、颜色、数组等常量数据,有点像普通java项目里的属性文件(properties文件)

走进android项目中的layout/main.xml 开发android项目和开发web项目有几分神似,在main.xml里(也可能是xx.xml哦,main.xml是默认的第一个,在java代码里,会用R.layout.main来表示man.xml),包括了各种各样的基础控件(它们都是大小写敏感的,如果在xml里写错了,那一定会在运行过程中出现空指针错误),就像是web项目的前端一样,不过其复杂程度自然要比写html复杂。可能大部分入门android的时间都会花在这里。

<TextView
android:layout_height=”wrap_content”
android:layout_width=”fill_parent”
android:id=”@+id/TextView01″
android:text=”54chen Android2.2 学习手记”
android:textColor=”#0f0″
android:textSize=”28dip”
android:layout_y=”330dip”
android:layout_x=”35dip“>
</TextView>

这就是main.xml里的一个片段,这是一个TextView控件(请勿直接复制,看看即可,有半角全角的问题会出现错误),这个控件,关键词是TextView,大小写是敏感的,另外它丰富的属性都是由android:xx来定义的,其他的控件也是类似的定义。一般都会有,高度、宽度、内容、id、颜色、字体大小、布局相关的信息。

例子到此,详细的更多控件的使用,我们在学习完intent之后再在后面的手记中去记录。

Intent:android项目中的胶水 前面说到,相当于controller层的activity,实际上一般情况是一个activity对应一个layout的xml,而一个常见的软件,都会弹出来多个窗体(做过vb vc delphi啥的一定知道subform的概念),这个时候需要多个 activity来回切换,这时候就是靠intent在中间起作用。
在一个Android应用中,Intent是对执行某个操作的一个抽象描述,Intent 负责提供组件之间相互调用的相关信息传递,实现调用者和被调用者之间的解耦。Intent是一种在不同组件之间传递的请求信息,是应用程序发出的请求和意图,作为一个完整的消息传递机制,Intent不仅需要发送端,还需要接收端。

在android应用总控xml(AndroidManifest.xml)里有这样的内容:<intent-filter> ,这里面定义了可以访问的intent动作。

// 获得可编辑文本框中的值,也就是电话号码
String phoneNumber = PhoneNumberEditText.getText().toString();
// new Intent(行为,数据),其中action_dial是拨号行为,数据是电话号码
Intent intent = new Intent(Intent.ACTION_DIAL, Uri
.parse("tel://" + phoneNumber));
// 去调用那些可以处理拨号行为的Activity
startActivity(intent);

看完上述代码,是不是有点对intent概念的感觉了呢,如果还有疑惑,再看

//在当前Activity中启动另外一个Activity
startActivity(new Intent(this,目标Activity.class));