当前位置:  编程技术>移动开发
本页文章导读:
    ▪兑现给定某日期,判断是星期几        实现给定某日期,判断是星期几 需注意的是:1是周日 // 实现给定某日期,判断是星期几public static String getWeekday(long longDate) {// 必须yyyy-MM-dd   SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");.........
    ▪ 网易跟贴的上辈子今生        网易跟贴的前世今生 前言:网易跟贴,也就是新闻后面的网友评论,在同类产品中长期处于领头地位。“无跟贴,不新闻”的口号简单直接的刻画出了互联网时代的新闻特色。网易跟贴的意.........
    ▪ 完全安装cygwin的步骤       完全安装cygwin的方法 安装 GCC安装 GCC 最快捷的方式是在您的机器上安装完整的 Cygwin 环境。Cygwin 是 Windows 上类似于 Linux 的环境。它包括一个提供 UNIX 功能性基本子集的 DLL 以及在这之上的一.........

[1]兑现给定某日期,判断是星期几
    来源: 互联网  发布时间: 2014-02-18
实现给定某日期,判断是星期几
需注意的是:1是周日

// 实现给定某日期,判断是星期几
public static String getWeekday(long longDate) {// 必须yyyy-MM-dd
   SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
   SimpleDateFormat sdw = new SimpleDateFormat("E");
   String date = sd.format(longDate);
   Date d = null;
   try {
    d = sd.parse(date);
    Log.i(TAG,""+date);
   } catch (ParseException e) {
    e.printStackTrace();
   }
  
   String res = sdw.format(d);
   Log.i(TAG,"return res:"+res);
   return res;
}
/**
   * 判断当前日期是星期几
   *
  * @param pTime
   *            修要判断的时间
   * @return dayForWeek 判断结果
   * @Exception 发生异常
   */
public static int dayForWeek(String pTime) {
   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
   Calendar c = Calendar.getInstance();
   try {
    c.setTime(format.parse(pTime));
   } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   int dayForWeek = 0;
   if (c.get(Calendar.DAY_OF_WEEK) == 1) {
    dayForWeek = 7;
   } else {
    dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
   }
   Log.i(TAG,"DAY OF WEEK:"+dayForWeek);
   return dayForWeek;
}

    
[2] 网易跟贴的上辈子今生
    来源: 互联网  发布时间: 2014-02-18
网易跟贴的前世今生

前言:网易跟贴,也就是新闻后面的网友评论,在同类产品中长期处于领头地位。“无跟贴,不新闻”的口号简单直接的刻画出了互联网时代的新闻特色。网易跟贴的意义,不仅仅是网易在门户网站领域超越竞争对手为数不多的项目,同时也是中国网民智慧和社会生态的集中反映。正如《南方人物周刊》 “10年100个让生活更美好的东西”之一:“网民智商有多高,得看网易盖楼团”。


    但是,网易跟贴不是一天建成的,作为一款互联网产品,网易跟贴甚至在很长时间里,都没专门的产品负责人。2006年6月之前,我作为网易新闻中心的主编,曾经分管专题、论坛、产品、审核等方面的工作,以及后来的调任的职位,仍然与产品关联。因此,直接或者间接的负责网易跟贴的历次功能设计改造,以及部分的内容运营。离开网易前,已答应过同事,总结过去,以供后来者参考。但断断续续的写,一直拖了几个月。——梁剑
 
第一部分:产品设计和思考历史

一,出生:网易跟贴的推出,起步比新浪晚很多,之前文章页底部的“发表评论”按钮,是直接链接到论坛首页,而新浪至少在2000年就存在“我来说两句”。网易则直到李学凌(现任多玩游戏网创始人兼总裁)出任内容总监(后任总编辑)后,才在03年下半年推出。前期为李学凌亲自主导设计。

二,盖楼和回复

1,网易跟贴在最开始的半年时间里,没有盖楼的功能。当时的样式和新浪差不多。

2,盖楼是意外之作

    盖楼一开始并非是故意设计的。只是当时为了解决网友连续讨论,无法看到上下文,从而容许连续引用回复。没想到出来了盖楼的效果。

3,TABLE下的20层楼

刚开始的盖楼,采用TABLE的方式。只能显示20来层。由于一个个TABLE嵌套,中间的越来越小,最后被收缩成一条粗线。网友称之为“塌楼”。

 

 


4, DIV下的50层高楼

    06年底,修改为DIV,可以扩展到50多层。带来新的问题是,网友将跟贴COPY到博客等网站时,DIV会被过滤或者缺少样式支持,从而无法展现完整的盖楼。当时只针对特定的博客(网易、新浪、搜狐等)做了修正。但是这种方式下,仍然未解决,楼层过高时,顶部坍塌的问题(也就是缩成一条线)。

5,70层高楼

    09年,采用了网易手机版的方案,将10层后的线框,修改为不闭合。但是外观上不容易看出来。这样,理论上,楼层可以无限高。但是,楼层过多对页面打开速度影响严重,甚至会导致浏览器崩溃(特别是IE),经过测试后,取了一个性能以及视觉都在可接受范围内的70层。

 

6,盖楼的重复信息:

盖楼在视觉上,气势磅礴,而且信息连贯。多个互不认识的网友,经常在里面联合写连载小说。如:

 

    但是,所带来的问题是,跟贴页面内,出现大量重复信息。因为盖楼时,前面的信息几乎都是一样的,只是最后一条不同。因此,在07年初,启动了一个方案,前端判断重复的楼层,默认收缩隐藏。而如果已经有分支的,则显示最新的。但是点击展开后,不能再通过点击收缩。

 

三,热帖和顶帖系统:(热帖是指在网易跟贴页,排在最上面的10条,根据被顶的次数排序。)

1,打分:

    刚推出的网易跟贴,在每条跟贴后面,有下拉的打分选项目,从1分到5分。这个是参考当时国外的一些网站。 然后,再根据最后的综合得分汇总,进行热帖(单贴)排行。当时还曾经设想,日后对登录用户的等级和影响力之类实行累积和评级,他们的评价分值不一样,可以更大程度地影响排序。

    但是,这个打分系统,在实行大约一个季度后,就被否定。因为在这个面对广泛网友的快速评论系统中,下拉、思考分值、然后再提交的几步操作,还是令多数人却步。

2,支持和反对:

    代替复杂打分系统的,是一个“支持”的按钮。点一下数字加1,然后简单粗暴的按数字多少排列本新闻的热帖。这个简化的方案,一直沿用至今(去年措辞方面被修改为“顶”,稍后说明)。

    当时并没有“反对”的按钮。但是05年初的时候,其他部门一个同事对跟贴做用户体验评测时,当时提到“既然有支持,应该也有反对”。我一开始是不赞同增加的,因为“支持”是用于热帖排序,而增加“反对”,无法同时也参与排序(曾经考虑过两者叠加或者加权平均),因此觉得是将顶帖复杂化的多余功能。但是,由于当时这个评测结果是直接向丁磊汇报的,所以在不能提出充足的有害理由情况下,最后还是同意增加。

    没想到,虽然“反对”的数字并不参与排序,后来被网友利用到极致。经常在跟贴里看到发帖后面有“赞同的点支持,否则点反对”,网友利用这个简单的投票来做民意调查。而一些被网友怀疑为五毛所发的跟贴,支持数成了大家发泄的一个渠道。特别是在某些领导人讲话新闻后面的叫好的跟贴。但是“支持”和“反对”功能的取消,主要也是祸起于此。09年秋天,取消“反对”功能时,网友一片骂声。后来“支持”也修改成“顶”。

3,热帖的困惑

    前面说了,“支持”的参与方便,而“热帖”的规则简单,网友参与热度很高,还曾经有网友编写过网易跟贴的投票机软件。

    但是,这个热帖机制,缺陷也是显而易见的。由于跟贴页面的设计为上面10条为热帖,下面20条(后来改为30条)为最新。首先,热帖的占位效应很明显,被顶上来的,基本都是最早生成的跟贴,被顶到热帖后,则会有更多的机会获得支持;这样一些很普通的贴长期占据高位,而某些经典在没机会浮现。因为极少网友翻页去看跟贴,只要一篇新闻的跟贴过千,新贴在跟贴第一页显示的时间很短暂。

4,推荐系统

    A计划:构建一个类似IMDB等电影分享网站之类的评价系统,而且计算公式复杂保密,其中包括发表时间,支持数,反对数,被引用回复次数(被盖楼数),甚至参与顶帖的用户身份,也加上权重计算。最后换算成一个叫“热度”之类的数字,进行排序。但是最后没有付诸行动,主要是担心在跟贴这样快速、简短的评论系统中,引入一个深度用户参与的复杂的评价系统,很担心效果。而且,如果用户无法理解自己行为与最终的排行的直接关系,会极大的降低参与兴趣。

B计划:放弃上面的复杂公式,只是在现有的顶帖基础上,增加时间衰减的计算。希望这样可以避免长期占位的发生。

C计划:构建用户积分系统,用户的积分来源于发帖被顶,而获得积分之后,则可以用于顶别人的贴来积分金钱。也就是说,将热帖的产生权,交给那些通过发帖而拥有大量积分的用户。

    此外,还有其他一些零碎的想法。其中可能有的是错失的好机会,有的可能是明显的歧途。但是,盛名之下的痛苦在于,决策时,我都倾向于保守。因为在守成与冒险之间,大多数时候,选择了前者。

四,发帖数

1,点一下“支持”自动发一个贴?

    互联网有句话叫“PV是万恶之首”,跟贴的总数,也成了各家表面比拼的一大手段。特别是在04、05年很长一段时间里,电视、报纸在引述一条新闻在互联网的反响时,经常采用在某某网有多少条跟贴。而这些记者可不管这个跟贴数字背后是怎么构成。

    那时,新浪、搜狐(腾讯后来也加入)都采用了点一下“支持”或者“反对”,自动生成一个跟贴的方式,内容基本是“我顶”“很好”“支持”几个预设好的。这样跟贴的数字就如当年的亩产量一样,飞天上去了。

    我们曾经为此多次开会,争论激烈。特别是在内容影响力和市场份额整体落后于对手的恶劣环境中,我们又在残酷对比的跟贴数上被对手抛离,真难抵挡住诱惑。最后还仅仅是因为一些朴素的想法(用户是否需要)而得以保身。
 
    新浪等采用自动发帖的方式,带来非常严重的后果是,跟贴可读性急速下降,满页都是用户点击“支持”“反对”系统自动生成的跟贴。后来有的网站采用区别对待的方式,默认不显示自动生成的,最后甚至取消了。但是他们在比拼跟贴数字的时候,已经给网易跟贴让出了极好的发展机会。

2,合并跟贴

    合并跟贴是指将相同题材的新闻跟贴合并起来,特别是制作专题的时候使用较多,比如,南非世界杯所有新闻的跟贴合并。这个功能的发明者应该是新浪,设计初衷估计一方面是增加跟贴数,网站在对外宣传时,号称某个话题网友评论数过百万条,是相当壮观的;另一方面可能真有部分用户有此需求。梅西的新闻跟贴都合并到一起,你只需要从任何一条梅西的新闻点进去,都可以看到所有的评论。

    但合并跟贴对跟贴内容质量的伤害还是存在的,因为网友不少评论是针对当篇新闻的具体内容,合并后会导致错乱。比如一篇挺国足的新闻,跟贴可能全是骂作者的,如果被合并到另外一篇骂国足的新闻里,会让人莫名其妙。

    网易曾经采用一个折中的方法(其他网站也看到有类似的),默认显示的是本新闻的跟贴,然后还有合并更贴的入口。而合并的页面里,每条跟贴都显示来源于哪篇新闻。但是大概在08年初的时候停了。当时主要是对系统性能的影响有点大,而为了一个用户并不太需要的功能,不值得。2010年初又恢复为专题的跟贴合并,这有一定的合理性,除了前面说的数字以外,还有专题本身就是一个话题的集中,所以跟贴也因此集合。


五,IP识别和网易火星网友

1,IP识别功能

    IP自动识别就是将跟贴用户的IP信息,自动转换成地理信息。这个功能推出之前的跟贴,用户身份要么是可以自己填写(包括可能登录),要么就直接使用IP了。常见的格式就是“IP:202.120.100.* 网友”。

    07年初,网易上线了自动将IP匹配成地理信息的功能,表述格式变为“网易北京海淀网友(202.120.*.*)”。IP隐藏了最后两位。

    这个功能的灵感来源于一篇谈用户体验的文章(不过我实在想不来是谁写的、实在抱歉),里面大概有一句话,意思是要将用户不能识别的机器信息,转换成可辨认的文字或者图形。后来有一天看跟贴的IP时,就突然灵感一闪,换成大家可识别的地理信息如何? 

    于是在网上找了个IP地址库,总共有10几万条记录(IP段和对应的地址)。但是中文地址不规范,很多详细到“某某街道几号XX网吧”,所以就干脆人工整理,将多余的信息全部删掉,最详细只保留县区级、或者学校。但也保留了微软中国公司和IBM中国公司的IP信息,这导致后来出现了“网易IBM中国网友”,真有点对不起发帖的兄弟。这个笨办法耗费了1个月的时间。后来的版本采用了程序智能截取,并且自动升级IP地址库信息。

    这个功能推出一年后其他大网站都纷纷效仿。不知道是不是网易最早在跟贴上应用的,但是当时的确没有参考过其他网站,因为日常浏览的网站里,没看到过。

2,网易火星网友

    在整理上面说的IP地址库时,偶尔遇到一些没有地理位置的或者只显示“ICCAN未分配”的IP段,犯困了。一开始准备老老实实地用“网易IP未能识别网友”,后来干脆恶搞了个彩蛋,就是“网易火星网友”。

    因为不能被识别而且网友使用到的IP其实不多(不包括地址匹配错误的),所以火星网友的出现概率极低,偶尔出现时引起大家骚动和仰慕。但是后来网友发现漏洞,利用HTTP头信息欺骗,捏造不存在的IP(包括局域网IP),就经常看到火星网友。甚至直接修改地域信息的显示。

    3,地域攻击

    IP识别功能所赢得的巨大声誉是在意料中的。但也导致了一些反对的声音(包括网友和网易内部),最强烈的就是地址信息所引起的地域攻击。甚至还被网友举报到监管部门(包括色贴),最后为了生存,对直接攻击的做了删减,并且在页面提醒“文明社会,从理性发贴开始。谢绝地域攻击。”

    4,IP地址的应用

    曾经设想中的应用,根据新闻的事发地,自动列出当地网友的跟贴。比如,在一篇“成都公车起火”的新闻后,来自“网易四川成都网友”的评论,可能是非常重要的新闻信息。但是由于这个功能大部分新闻不适用(体育、财经、科技等),以及在“所有辅助功能为系统性能让路”的原则下,一直搁置。

六,用户系统

    每天活跃在网易跟贴里的几百万用户(包括看帖不回帖的),如果通过跟贴为纽带,将臭味相投的、对同一话题跟贴态度一致的、地域关联等连接起来,组成跟贴社区,听起来似乎很美好。但是事实上,设想、摸索、实践的经历不少,目前尚未成功。

    1,首先,在过去很长时间里,跟贴用户绝大多数不登录的。曾经设想过,通过COOKIE读取用户信息(曾经登录过通行证的),但是无法解决用户信息安全和隐私的问题。

    2,曾经采用网易论坛的用户库,计划将跟贴记录保存到论坛。但是,用户在跟贴的发言,与论坛的风格差异很大,并不太愿意保存到论坛。

    3,为了实现登录网友产看自己发帖记录,临时做了一个保存灌水记录的系统。

    4,09年春夏之交开始,所有网站被要求登录发帖。竟然实现了多年的愿望,虽然发帖量一度跌去一半。但是神州大地都如此,网友也被迫接受了。

5,09年60大寿后,借鉴微博的思路,计划将只在跟贴首页平面展示的跟贴,通过关注、转发等方式立体传播。开工一半,网易决定开发微博,导致跟贴此项目匆忙完成,效果差强人意。

七,互通——微博,论坛、博客

    系统互通,其实挺像那些高谈战略布局的企业家一样,听起来让人热血沸腾,但是能实现而且成功的极少。因为,你苦花心思的去实现,用户不一定需要,甚至并不知道这个互通的存在。

1,与博客互通:曾经试验过,用户在发跟贴的时候,可以勾选同时发到博客。结果一方面由于登录的限制,另一方面没几个用户愿意同步,因为跟贴内容与博客性质差距太大。论坛遭遇也类似。

    2,收藏到博客:每条跟贴下有一个按钮,收藏到博客。点击后,系统将内容COPY到博客,并且自动增加了新闻标题、原始链接和描述性的文字。但是一天使用的次数,不到1000次,最后放弃。但是,专门收藏跟贴的几个博客(老衲博客),倒是很火。这个功能的需求是少数用户,可以通过人工COPY实现。

3,转发到微博:微博是一个很好的分享和传播平台,但是由于字数限制,不太可能直接将跟贴转发到微博。网易微博上线前,偶尔看到有网友人工将网易跟贴截图,在新浪微博传播。于是,我们想到了将微博截图然后,当图片发到微博上。用户只需要点击一下,系统在后台完成截图过程。而且为了适应微博的页面宽度,单独制作了用于截图的窄页面。

    该功能还是很受网友欢迎,更重要的是,网易跟贴可以通过微博渠道广泛传播。可惜不久被和谐了。

八、网易跟贴的文化形成

    网易跟贴的恶搞、自嘲、正话反说、调侃朝政、讽刺世俗等文化,形成的原因很多,但是与产品功能设计的原因较小。也就是说,通过功能设计刻意去培养营造这种文化,可能用错力道。同理,对手也很难通过产品的改造而复制网易跟贴。但是,必须警惕的是,因为功能的阻碍,让导致网友流失、气氛减弱。比如,在跟贴内容中加入表情图标,我是一直坚决的反对者。因为表情图标会极大地伤害文字内容的可读性,也类如系统自动生成的“支持”“我顶”“很好”一样,导致水贴泛滥。

    网易跟贴文化的形成,时间漫长,非一朝一夕所为。有一点比较确定的是,网易新闻曾经力推的恶搞专题,对此有直接的推动作用。大约是2004年到2007年之间,网易新闻曾力推恶搞、反讽类专题,比如《油荒时代的幸福生活》、《全民大搞拷》、《领导下乡送温暖》(已阵亡)、《幸福生活2005》、《坚决反对取消户籍制度》等。网易跟贴调调和这些专题的风格一脉相承。当然网友的创造力和想像力远超人数有限的编辑,后来演绎了老衲和师太、小李与局长等无数可歌可泣的跟贴故事。

    By 梁剑 2010年9月12日。(先后参与过网易跟贴的产品功能设计人员有:李学凌、梁剑、钟韵江、李文涛、彭毅、李楠、陈陶陶、万琪,其中只有万琪是名义的全职跟贴产品人员;开发人员有:董荣杰、李欢、黄海亮、肖裕、程思、郜文彬;前端人员有:罗金、徐翔、罗礼权、鲍海燕——名单可能有所遗漏)


 
后记: 
曾经计划的另外两部分内容:

第二部分:跟贴的审核管理

第三部分:跟贴的技术实现原理

<script type="text/javascript"></script><script src="http://widget.wumii.com/ext/relatedItemsWidget.htm" type="text/javascript"></script>

 转自:http://wildrain.blog.163.com/blog/static/143002201081914031956/

    
[3] 完全安装cygwin的步骤
    来源: 互联网  发布时间: 2014-02-18
完全安装cygwin的方法

安装 GCC
安装 GCC 最快捷的方式是在您的机器上安装完整的 Cygwin 环境。Cygwin 是 Windows 上类似于 Linux 的环境。它包括一个提供 UNIX 功能性基本子集的 DLL 以及在这之上的一组工具。安装好 Cygwin 之后,通常可以忽略它,即使您是命令行的爱好者,您仍能发现您活得更舒坦了。


确保您具有相当快速的 Internet 连接。GCC 编译器及相关实用程序大约有 50 兆字节。另外确认您的连接是否需要一个代理服务器。这可通过您的 Internet 浏览器选项: 工具 -> Internet 选项 ->连接 ->局域网(LAN)设置来确定。 
确保在您的管理员帐户下安装这个程序,并选择为“所有用户”安装。
将您的 Internet 浏览器指到 
www.cygwin.com
。在屏幕的中央是一个黑绿两色组成的 “C” 徽标,标题是“Install or update now.”。在该链接上点击,这将下载一个小程序 setup.exe(250KB)。这个安装程序将在您的机器上引导 Cygwin 环境的安装或更新过程。 
运行安装程序
将 setup.exe 下载到一个已知地方,如桌面,然后运行它。
它将打开安装向导,如下图所示:
图 1. Cygwin 环境的安装向导

点击 Next按钮。 
选择下载位置
在这个页面上,选择"Install from Internet"。
图 2. 选择安装类型

点击 Next按钮。 
选择一个安装目录
在这个页面上,选择执行 Cygwin 所在的目录。
设置图3所示的剩余选项。
图 3.选择一个安装目录

点击 Next按钮。 
选择一个临时安装目录
在这个页面(图4),为安装包选择一个临时目录。当 Cygwin 安装完成后,您可以删除这个目录和它的内容。
注意安装程序记住了这个目录,并在更新时只下载比这个目录中的包更新的版本。如果您删除这个目录并重新安装, setup将重新安装您选择的所有内容而不管这些包的安装程序在运行目录中已经存在。 
图 4.选择一个临时安装目录

点击 Next按钮。 
指定您的 Internet 连接
在这个页面上(图5),指定 Internet 连接。如果你有代理服务器,选择“使用 IE5 设置”,或从您的浏览器选项获得服务器名,选择使用代理,然后输入代理服务器的主机名和端口号。
图 5. 选择连接类型

点击 Next按钮。 
选择下载站点
在这个页面上(图6),选择一个下载站点。因为这些站点是义务的镜像,所以选择一个下载点有点风险(通常它们是可用的,但有时不可用)。通常,试试离你比较近的那个站点。
图6. 选择一个下载站点

点击 Next按钮。 
选择包进行安装
在这个页面上,您将选择要安装的包。默认情况下,Cygwin 基本包将不安装 GCC,因此,您必须修改默认设置。
将鼠标移动到 Devel边的加号(+)上,然后点击它展开 Devel类。 
图 7. 选择包进行安装

在你还没确定哪些需要哪些不需要时,最好全部下载,点击All后的default为install。即是完全安装了。保证了GCC编辑器的使用。
您会看到在 Devel 下有许多入口,其中只有三个是您需要的,次序如下:
•  binutils 
•  gcc 
•  gcc-mingw 
不是所有默认的基本包都需要运行 GCC,但它们不太大,因此为简单化,就安装它们。
注意很容易选错包或版本,尤其在重新安装的时候,因为选择窗口中的循环按钮是不标准的。在这一步我们建议的就是多加小心,尤其是有多个 GCC 版本的情况下。
为选择这三个包,点击列 New中每个双向箭头直到显示每个包的版本号。根据您机器上已安装的以及镜像上所拥有的合适的版本,列入口在各图标间循环: 

如果有多个版本可用,选择数字最大的一个。要下载二进制文件,确保选中了“Bin”列的复选框。
图 9. 下载二进制文件

完成下载
选择完三个包之后,Cygwin 就访问选择的镜像主机,然后下载那三个包以及默认的基本包。根据您的连接速度这将持续几分钟,在安装期间,将打开和关闭许多弹出窗口。
因为存放 Cygwin 安装的镜像站点是义务的,有时不可用或负荷过重。如果发现选择的镜像没有响应,就按取消 ( Cancel),这将终止整个安装程序。 
惟一的办法就是重新开始安装并选择另一个镜像;这非常让人感到沮丧。幸运的是,安装程序记住了大多数您上次所做的,因此通常取默认情况。在重新选择正确的包时必须小心,因为在后面的安装中不帮你选择这些内容。
setup程序然后询问是否在您的桌面或开始菜单创建一个 Cygwin 快捷键。该快捷键启动 Cygwin shell (称为 bash), 这对我们计划中的 DB2 使用并不是必须的,但对测试我们的安装是有用的。因此让 setup至少创建一个桌面快捷键。我们将在安装的后面使用它。 
最后,点击 Finish按钮。我们将在 
后面
测试安装结果。 
图 10. 完成安装

引言:
初学linux时,需要转换系统是最头疼得事,因为windows和linux各有优点,各有用途,所以只能麻烦的在两者之间切换,反复的重启。开机时也麻烦,因为初学者大多数使用windows,装了linux后,开机会自动启动linux(当然,可以通过在安装过程中设置或按装结束后修改相应文件来决定启动时先引导哪个系统),想进入windows还要坐在电脑旁死等。Cygwin 恰好解决了这个问题。

介绍: 
1  .cygwin 是windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。

特点:  
1.    cygwin只是模拟一个unix的环境有助于初学者学习,现在也可以在windows下开发一些程序。但他所支持的命令没有新版本的LINUX多,它是一个不是很完整的UNIX系统。
2.    vmware,qemu等虚拟机软件,以vmware为例,是先在windows中安装vmware虚拟机,再在vmware虚拟机上面用linux 光盘或iso镜像安装完整的linux系统,vmware功能是虚拟一个cpu。与用虚拟机相比,Cygwin本身就是linux在windows环境下的部分替代物,占用资源相对较少,同时功能与“真实感”也更小,还有些不完善之处。
下载与安装:
1.解释: 本来安装个软件是个很简单的事情,不过初次接触cygwin.往往有很多人折腾了数日才搞定。主要是原因是:我们以往在windows上装个软件,通常只是在网上下载个setup.exe安装包,然后就可以在没有网络的情况下,双击setup.exe,随时就可以安装啦。Cygwin也是要下载一个setup.exe,不过这个setup.exe可不是安装包,而只是用来下载和定制安装包的,下载定制完成后,才是真正的安装(就不必需要网络啦),待会儿就明白啦。
2.下载安装: 登陆:http://www.cygwin.com ,点击“install Cygwin Now”先下载个安装向导文件setup.exe,这个是Cygwin的官方下载安装向导文件,而且也只能通过它才能正确下载最新的Cygwin版本  。双击“setup.exe”,出现如下界面(图略)


点击“下一步”,出现三个选项,即三种安装方式:
(1)  Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。
(2) Download Without Installing:只是将安装包下载到本地,但暂时不安装。
(3) Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的目录进行安装(得保证你的计算机上已经用setup.exe在网上下载了安装包)。
第一次肯定不选选项(3)。选项(1)最费时间,如果网速20kb/s ,得一天多才搞好,不过最省事,第一次不知如何办,我选最稳妥的方式:选项(1),一个流程搞定。其实选项(2)也得很长时间。所以无论如何保证你能连续上网一整天啊,不过就别在计算机面前一直坐着死等了,干点别的事去吧。选择完成后,点击“下一步”。出现 root Directory(根目录安装处,即确定要把cygwin安装在何处,得保证至少有5G空闲空间),点击右侧“Browse。。。”
选择你要把cygwin安装在何处,我装在f盘啦。其它默认就行啦。

确定后单击“下一步”。出现下面界面,确定要把安装包(就是用setup.exe 下载下来的安装包,用来真正安装cygwin模拟环境的那个安装包)放在哪个地方,以备以后用于直接安装cygwin模拟环境。确认方式和上面一样,我将之放在f盘自己建立的一个文件夹cygwinset中。

确定后单击“下一步”,出现如下界面。出现三种连接方式, 
(1)Direct Connection:直接连接。
(2)Use IE5 Settings:使用IE的连接参数设置进行连接。
(3)Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址和端口号)。

直接默认选择:选项(1)就行啦,直接单击“下一步”,稍等片刻出现如下界面:(图略)

界面中列出多个下载站点,我是选的默认项,(一定记住你选择的站点),可能下载速度有不同吧,直接“下一步”。

安装向导正从下载镜像站点上获取压缩过的安装列表文件,片刻便出现如下界面,即安装列表文件界面。


可以看到“all” 后面有个“Default” 字符,即为默认安装,单击”default”可依次变为”install” ,“reinstall”;”reinstall”先不用管,“Default“默认安装时很多如vivi,gcc 等都不会被安装,单击“all” 后面“Default”成为”install“,全部安装即可。出现如下界面:
单击”下一步“就好好等着吧,我用了一天左右。
安装完毕后,最后一个界面提示是否建立桌面快捷方式,直接打“\/“就成,然后”确定“就彻底完工啦。我的 f盘的 cygwinset 文件夹中看到名为” ftp%3a%2f%2fcygwin.dp.ua%2fpub%2fmirrors%2fcygwin“安装包,你的可能是”http%3a%2f%。。。。。“无所谓啦,留着以后安装用。

双击桌面 图标   进入 cygwin 虚拟环境。

如果下载安装不顺利,如出现 “down incomplete,Try  again? ”提示符。或者在某一进度卡住不动,则可点击“取消“,然后重新点击setup.exe 重复上面动作,不过有两个关键动作:一是在选择下载网站时要选择同一个网址,如下界面(这就是上面建议要记住网址的原因.)
第二个关键动作:安装方式时选择,选择”Reinstall“,而不是”install“啦,这样单击“下一步”就可从原来的进度继续下载安装。否则将从零开始啦。。

使用: 
在使用cygwin虚拟环境之前要设置一下环境变量PATH。PATH变量被cygwin应用程序作为搜索可知性文件的路径列表.如果想在不运行bash的时候也能够使用cygwin工具集,PATH起码应该包含x:\cygwin\bin,其中x:\cygwin 是你的系统中的cygwin目录。例如我的则是f:\cygwin.则PATH=f:\cygwin\bin. 设置方法如下:
1.      打开windows系统属性对话框,点击“高级”—》”环境变量”,打开环境变量设置窗口。
2.      点击用户环境变量窗口的“新建”,就是上边那个。出现如下新建用户环境变量界面:输入如下

单击“确定”,好啦,现在可以使用啦,双击桌面图标进入cygwin。
1.      最先想做的是,查看windows的内容。
输入指令“mount” 
$mount
出现能查看的所有目录》》

主机上的c盘 对应  /cygdrive/c 
想查看c盘,输入指令:
$cd  /cygdrive/c
要查看c盘内容:
$ls
对d ,e, f盘查看,同理
Cygwin常用指令与linux下基本一致,请自行查阅。不过我的cygwin 能查看文件,无法编辑文件,vi 后,键盘输入不正常。只能在windows下建立。在windows下建立的c文件是可以在cygwin下编译和运行的。
插入一个小问题:再查看 windows的文件时,有些文件名 两个 单词之间有空格。
查看时 可在中间插入“\”。例如想查看c盘的 Program  Files 文件夹,先进入c盘然后指令如下:
$cd  Program\  Files
即可。
交叉编译vivi,kernel:
1.      安装arm-linux-gcc交叉编译环境:
(1)      先在X:\cygwin下建立个文件夹如:opt。
(2)      将arm-linux-gcc 的压缩包解压在opt中。我的是
arm-linux-toolchains_cygwin.tgz 
$cd opt
$tar zxvf  arm-linux-toolchains_cygwin.tgz 
Opt 目录出现FriendlyARM目录,内为交叉编译工具源码。
修改启动脚本/etc/profile文件(可在Windows中用文本编
X:\cygwin\etc\profile)中的PATH环境变量为
PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/opt/FriendlyARM/crosstool/arm-linux/gcc-2.95.3-glibc-2.2.3/bin:$PATH


可以鼠标点击相应目录查看一下,感受更直观。
输入命令:“ arm-linux-gcc –v ”  确认是否安装成功
2. 编译vivi:
由于VIVI要用到kernel的一些头文件,所以需要kernel的源代码,将vivi和kernel都压到/FriendlyARM下
然后需修改/friendly-arm/vivi/Makefile里的一些变量设置
LINUX_INCLUDE_DIR = /friendly-arm/kernel/include
CROSS_COMPILE   = arm-linux-
ARM_GCC_LIBS=/opt/FriendlyARM/crosstool/arm-linux/gcc-2.95.3-glibc-2.2.3/lib/gcc-lib/arm-linux/2.95.3
据说为确保编译的有效性,最好在编译之前将vivi里所有的“*.o”和“*.o.flag”删的掉,不过我没找到,也就没管。


进入/FriendlyARM/vivi目录里,输入“make menuconfig”,开始选择配置。注意Exit时一定要选“Yes”保存配置。
再输入“make”正式开始编译,一会儿就完了。如果不报错,在FriendlyARM/vivi里面就有你自己的“vivi”了。

3. 编译kernel:
kernel的源程序在上面编译vivi时已经解到/friendly-arm/kernel中了。因为这个程序包已在linux 中编译过 ,有一些中间和目标代码和Cygwin是不兼容的。必须先处理一下,否则不能正常进行编译。

进入/friendly-arm/kernel目录,可以输一下“make menuconfig”试试。结果提示出错。这是由于配置脚本已在Linux中编译过,在scripts/lxdialog里产生了一个Linux下的可执行程序lxdialog。在Cygwin里这是个坏东西,它既不能执行,还会阻止可执行程序的生成。必须把它删掉,目录如下:
/FriendlyARM/kernel/scripts/lxdialog/lxdialog
顺便把同一文件下的所有.o 文件也都删除,看准啦,别把.c 源文件删啦!

再执行“make zImage”应该可以完成编译了。如果出现如下提示:make: *** No rule to make target `/friendly-arm/kernel/include/asm/arch/param.h', needed by `/friendly-arm/kernel/include/asm/param.h'. Stop. 
则 先“make dep”
再 “make zImage”
等一会儿,就会在//FriendlyARM/kernel/arch/arm/boot目录里会生成你编译的zImage 。
顺便提示一下:有时候cygwin 会出现显示不完全现象,比如“make dep” 后,就可能出现,不用管,只要make dep 一段时间,屏幕不动,ls 能使用,就直接输入“make zImage”生成内核啦。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3