Android系统再现木马,变身驱动程式袭击用户

5月14日消息,据国外媒体报道,研究人员在一家普通网站上发现的第一例Android驱动的恶意软件,该恶意软件属于非常危险的常用于感染Windows电脑的自动攻击类型。

美国移动终端杀毒软件公司Lookout Mobile Security已经在许多网站上发现了该恶意软件并认为这一古怪的NotCompatible木马分布在含有隐藏的iFrame的页面中。任何访问受感染页面(攻击忽略个人电脑的浏览器)的Android浏览器都将会在用户不知情的情况下自动开始下载该恶意软件。

这并不类似于电脑驱动袭击,因为用户在安装应用程序的时候需要勾选“未知来源”。在通常情况下“未知来源”是未被勾选的,一旦用户勾选了该选项,他们就允许非该市场的应用程序被安装了。这一层大体上就相当于使用Vista或Windows7操作系统的电脑上的用户控制访问功能,该功能通常是用来避免社交工程或篡改应用程序性质的。

NotCompatible欺骗用户声明是正常的更新。其实,这并不复杂但有时候却能够使一些用户受骗。

感染的目的有点神秘。Lookout的官方博客中称该构造相对良好的特殊恶意软件似乎并没有不遗余力地隐藏其目的:它可以被用来访问私有网络。这一功能本身对于IT系统管理员来说意义重大:感染NotCompatible的设备可能会被利用获取通常情况下受保护的信息或系统,例如企业或政府维护的信息或系统。

Lookout称受影响的网站似乎流量都很低,并认为在未经其确认的使用iframe的网站中,也有部分存在该木马病毒。

手机恶意软件创造者正在实验这类恶意软件能够做什么,并找到了在用户不用访问第三方应用下载网站的情况下,就可以让手机恶意软件下载到用户手机设备上的方法,与该案件类似。

为什么人们喜欢翻页效果?

lomo_book_reading_lettieri

虽 然现在静下心来阅读的时间很少,但是阅读软件仍然是我的智能手机中必备的软件。自从 Android 2.x 时代以来,一直使用的阅读软件是 Aldiko,原因是界面不错、操作直观、支持读取 SD 卡,足以满足我时断时续的阅读过程。如今,在 Android 4.0 时代,它的界面已经显得落后,但它仍然存在于我的手机之上,因为我仍然没有遇到更合适的应用来替代它。

 

虽 然 Aldiko 伴随了我这么长的时间,但是对它的怨念却一直存在,那就是,它没有翻页效果。对于阅读中翻页效果的执着,似乎毫无来由,却一直顽强存在。当初对 Stanza 印象深刻,就是喜欢它有翻页效果;初次使用 iBooks,心中一丝不爽,就是对其翻页效果不太满意,感觉过于快速;偶尔打开一下基本无用的 Google Books,是因为喜欢它的翻页效果,如果它也能打开本地图书,或许还真能成为我的主力阅读应用。

对于翻页效果执着的人,似乎并不在少数,而且这种阅读要求不限于电子书籍。最近,Wired 网站采访了一些开发者和用户体验专家,试图了解人们喜欢翻页的原因所在。

在 写给 Wired 的一封信中,Instapaper 的开发者 Marco Arment 说,“它对许多人有很强的吸引力。它有利于产品演示,而且特别的有触感”。最近,Marco Arment 对它的著名离线阅读应用 Instapaper 的更新中,也加入了翻页效果。

“翻页很明显是人工添加到 iPad 和 iPhone 上的,特别当消息内容是无需翻页的网络文章。”Arment 说,“对于我来说,阅读网络文章最‘真实‘的方法,应该只是滚动。但不可否认的是,我更喜欢翻页。长文的滚动让人感觉疲倦”。

当然,也有一些开发者不看重翻页效果。在和 Wired 的对话中,一些开发者提到,iBooks 的翻页动画属于过度雕饰,它需要更多的时间渲染,而且被认为是展示效果而不是一项功能。

照片

另一些开发者则试图走中间路线,比如 Flipboard,阅读的时候是有翻页效果的,但是不会像 iBooks 或 Google Books 那样试图去接近现实,而是一个很生硬的翻页,虽然如此,仍是一个不错的视觉效果。

对于人们喜欢翻页效果,一位为 DesignCaffeine 写作的用户体验专家提出了自己的看法。

”翻页是很吸引人的过渡效果,“Greg Nudelman 说,”它很经典。在浏览杂志、阅读书籍以及消费其它媒体形式的时候,它都很合适,因为它非常好的模仿了现实世界。“

一 个有趣的问题是,在电脑上浏览网页的时候,我们并不会很在意是否有翻页,甚至会认为那是一种干扰,而实际上也很少有网站为文章加上什么翻页效果。或许,对 于翻页的执着来源于手势设备的形式。手势设备上的阅读,是一种更加纯粹、更加放松的体验,更容易和传统的读书对应起来,而且阅读应用的界面也更加现实,这 使得翻页效果成了一个为人期待的细节。

题图来自 Rikkiproject

个人开发者生存状态调查:普遍依赖植入广告

在各种移动应用开发者的创富神话铺天盖地的背后,大多数的“个体户”才能真正反映这群移动应用开发大军的从业行情。光脚的不跟穿鞋的比,没有投资、烧不起钱的他们也摸索了自己的一套开发生意经。

移动开发者群体规模到底有多大?艾媒咨询做了相关统计,截至2011年11月底,中国手机应用开发者总数约100万人,其中,针对iOS(苹果 平板与手机)系统的应用开发者约14万人,安卓约75万人,塞班约4万人,其他约7万人。据此,个人开发者以及小型团队的数量大概是六十万人。

个人开发者绝大多数是赤膊上阵的开发者。各路投资并未向他们伸出橄榄枝,零成本推广成了不得已也要为之的事情;在维持生存都成为问题的前提下, 他们并没有“先追求用户规模而不惜代价”的烧钱底气,而是很早地就需要在用户和盈利两者间取得一定的平衡;当中,只是兼职或者“玩票”性质的人亦不在少 数,打一枪换一个地方成了他们的战术,有些开发者并不幻想着做大、融资这些从新闻上看到的事情,尽量捞快钱的思维推着他们边做边看。

这并没有所谓的褒贬。而且,这些个人和小型开发团队经过这番移动应用开发热潮的洗练,还总结出一套属于自己的方法论,他们嘴边也不失“用户需求”、“用户体验”、“引爆点”等等关键词,仔细听他们的故事,甚至会觉得很有趣。

不能否认的是,外部环境的成熟壮大给到他们很大的帮助。在怎么样把应用更好更快地送达用户的问题面前,尤其在安卓这个开放的系统下,各类第三方 应用市场成了他们的乐土。而收入上,“免费的App+植入广告”成为最为普遍的盈利模式,IHS ScreenDigest公布的2011年第三季度的数据显示,近一半最赚钱iPhone的App是免费的,31%的最赚钱安卓APP是免费的,此时,第 三方广告平台无疑是他们最依赖的金主。值得一提的是,广告平台的客户多为出于推广需求的大腕级移动应用,有点索富济贫的问道。

由此,他们更像是在第三方应用市场以及广告平台的统领下一齐在移动互联网掘金的蚂蚁兵团。在他们不断研究各类进场规则、分配办法的同时,一场开 发者与应用市场以及广告平台之间的互惠和博弈戏码也在不断上演。在现阶段,这群蚂蚁兵团可以说享受着统领们厮杀带来的“红利”,即便与“穿鞋的”开发者相 比的杯水车薪,也足以给光脚的他们带来短暂的兴奋。但对于未来,他们却也有很多不确定性的担忧。

本期创富志将从一个普通得不能再普通的个人开发者的故事说起,让我们一起看看这些开发者的生存状态。

手机广告市场掘金者

AdMob移动应用广告产业链

在为数众多的个体户开发者中,阿狸是其中普通的一位。这个号称“技术小白”的开发者受论坛里面各种开发者炫富帖的影响走进这个行业,通过自学和摸索的近一年时间里,他的月收入终于从最初的五毛钱涨到现在的一万元。他说,身边和他一样正在逐梦的同事还有不少。

自己上“夜校”

通过在应用里嵌入广告,这一款应用程序为他带来的收入只有五毛钱。这意味着只有一个用户点击广告栏而下载了其他的应用。

白天,25岁的阿狸是一家互联网公司的小白领;到了晚上,他则成为一名智能手机应用程序开发者。从去年至今,他已经推出了30多款移动应用。

据互联网数据中心(DCCI)《2012中国移动(微博)应用开发者调查》,阿狸是占据48.1%的个人开发者中的一员。从收入上看,阿狸每月通过自己开发的应用收入过万,跻身年收入10万-50万的行列,这一区间占比仅为10.9%。

阿狸毫不讳言自己是技术门外汉,“非计算机专业出身,一切从零开始自学”,甚至当时连一部安卓手机都没有,开发测试全用的是电脑上的安卓虚拟机。

大概自学一个月之后,他炮制了第一款应用程序———“姓名婚恋解析”。“我开发的应用一般都比较古灵精怪,我想这样才可以吸引用户下载”,阿狸解释道。这款应用简单得不能再简单,无非是做了一层APP的“外皮”,把用户与婚恋解析网站的信息给对接了起来。

阿狸说得很实在,他自学安卓应用的开发就是为了赚钱。开发者论坛里“小本起家”的创富神话一直是他的榜样。但他的应用程序均为免费下载。程序收 费没人玩,完全免费,开发者就赚不到钱。国内的安卓应用商店,80%以上的应用程序都是免费的,开发者赚钱主要依靠手机广告。“目前收入是在应用里面嵌入 广告,中国的用户普遍没有付费的习惯,只能在软件里面嵌入广告赚钱了。”阿狸无奈地说。

通过在应用里嵌入广告,这一款应用程序为他带来的收入只有五毛钱。按照当时广告平台的分成规则,这意味着只有一个“姓名婚恋解析”的用户通过点 击应用界面上的广告栏而下载了其他的应用。这个数字让阿狸哭笑不得,与其他开发者的收入相比也少得可怜。他没有停下来,第二款应用程序的收入好了些——— 每天1块多,一个月30多块。实际上,目前大部分开发者的月收入也不多,“一般都是几百块、两三千”,阿狸说。

深圳播思通讯总经理龙世渚告诉南方都市报记者:“移动互联网整体盈利状况可以说很糟糕。开发苹果的比开发安卓的状况要好些,但60%也不赚钱。 因为应用程序很多,你开发一个放上去很容易淹没在应用程序海洋了。”为了不淹没在应用海洋里,开发者的办法是为程序做推广,“主要是通过论坛上啊,应用商 店买位置啊,摩托罗拉、三星(微博)等内置推广。像安智市场这些的应用商店,那些位置,一天就好几千、几万,他们当然可以赚到钱了”。

然而,对于缺少真金白银的个人开发者来说,做推广是件奢侈的事情,他们往往选择不做推广。阿狸至今未曾花过一分钱在推广上。他每开发一款新的应用,就不断在各种开发者论坛中发帖为自己打免费广告。

30多款应用的开发,阿狸逐渐摸索到一些适合他这种个人开发者生存的门道。首先,他设计“古灵精怪”的应用程序来讨好用户,然后把大部分时间花 在手机论坛发帖上,“推广是最累人的,时间长,重复同一样工作,要一直发评论,一直发。”阿狸解释说,“比我技术好的人大把,但很多人的收入都不如我。比 如一个人的技术很牛,开发了一个很厉害的软件,但他不懂用户需求,不懂运营,不懂推广,这样也赚不到钱。”

通过推广,增加应用下载量只是第一步,想要赚到钱,还需要手机用户点击广告条(banner)下载广告主要求的内容。用户每下载成功一次,开发 者能够得到约0.5元的分成。事实上,阿狸靠广告条赚到的钱一直很少。“有广告的应用,用户是不喜欢的,要用户给钱,用户也不能接受,这个很矛盾的。用户 想免费,又想把个人开发者饿死,”阿狸告诉记者,手机用户看到广告避之唯恐不及,很少点击广告条(banner)。直到2011年底“积分墙”的出现,阿 狸的收入状况才大大好转。

积分墙是手机广告平台把推荐的应用程序集成后,以页面的形式展现给用户。应用程序上的功能,用户肯定想用,开发者通过积分墙限制功能后,用户为 了开启高级功能、购买特定内容、购买关卡道具等,需要下载积分墙的应用获取积分才行。应用程序借此得到推广,商业价值因此产生,开发者和手机广告平台得到 收入。

在不到一年的时间里,他以每月2-3个应用程序的速度进行开发,技术水平、对用户心理的把握、推广技巧日益提升,手机广告平台推出的“积分墙” 等新的广告展示形式,也为收入增长帮了大忙。阿狸告诉南方都市报记者:“如果不是积分墙的出现,我甚至考虑过放弃应用程序开发。”从今年年初开始,阿狸的 月收入稳定在1万元左右,均来自手机广告平台的广告分成。

阿狸选择的手机广告平台是有米广告。2011年10月15日,在更新BannerSDK(广告条软件开发工具包)的抽奖活动中,有米的工作人员 通知他获赠一部小米手机。在用安卓虚拟机开发出多款应用之后,他终于拥有了第一款搭载安卓系统的智能手机。阿狸决定搭乘地铁去广州番禺的一个小岛上领奖, 那里有清幽的环境,有一群和他年龄相仿的移动互联网掘金者。

金主是谁?

所有人都在等待引爆点。这意味着争夺的白热化,不仅是对市场、对用户的争夺,还有对开发者、对投资机会的争夺。

半小时车程,阿狸来到位于小谷围岛上的广州大学城,穿过一堆包豪斯风格的教学楼、宿舍楼,他到达位于广州中医药大学校区的有米广告公司,从有米 创始人手中接过小米手机。这个中国第一家手机广告公司,由26岁的潮汕人陈第创办。这位当年还未从华工毕业,害怕父母担心就偷偷躲着他们创业的85后,在 成立公司不到两年的2011年,带领团队把收入做到了1000万,实现了收支平衡。考虑到移动互联网行业普遍的烧钱状态,这显得非常难得。

类似有米这样的手机广告平台,是移动互联网行业的重要一环。阿狸们要靠有米广告的分成取得收入。广告商通过有米广告对接应用程序,让用户看到广 告,甚至产生互动,达到特定效果。据有米产品总监马少林透露,目前的广告商主要来自移动互联网行业内的应用开发商,有米通过积分墙和广告条等展示形式,提 升客户的应用下载量,帮助扩充用户数,这部分的收入占到有米年收入的80%以上。

有米广告和阿狸的大部分收入,来自圈内应用程序开发商希望做大用户量的渴求。目前,整个移动互联网生态圈都在烧钱,除了风投以外,很少有圈外的钱进来。

拿手机广告来说,有米副总裁李展铿承认,虽然他们也为行业外的品牌广告商,如宝洁、平安保险等公司,提供移动互联网推广方案,品牌广告商的钱好 赚,按照展示量进行支付。但这部分收入只占公司总收入的10%-20%。“目前多为中小企业,例如汽车4S店、医院等客户在做一些手机广告展示”。

这样的后果是钱都是在圈内流动,那么移动互联网生态圈会否因此玩不下去呢?

李展铿认为,“钱虽然是在整个移动互联网圈子里转,但用户一直在增加。大家的目的都是赚用户量。有了用户量,相信赚钱不成问题。而且钱一直在往移动互联网行业内流入,整个行业不存在资金链断裂的问题。其实整个互联网行业大家在做的事情都是聚集流量,然后变现流量”。

这位1987年出生的年轻人相信,随着智能手机用户量的快速增长,品牌广告商重视手机广告市场是迟早的事情。相比其他行业,这位副总裁的年龄折射出移动互联网行业的特点:

年轻、有活力、有潜力、还未定型。

所有人都在等待引爆点。所有人都想在这个大金矿里捞一把。这意味着争夺的白热化,不仅是对市场、对用户的争夺,还有对开发者、对投资机会的争夺。

单说手机广告平台,除了Admob等国外公司,有米广告在国内就有多盟、架势等30多家竞争对手。由于手机广告平台的技术含量相对较低,竞争主 要集中在对广告主、开发者的争夺上。一些公司为此不惜牺牲长远利益,例如为吸引开发者,当用户每下载安装积分墙的一个应用程序时,他们给予开发者3倍分成 (应用安装价格若为0.5元,就给开发者1.5元),对广告主的争夺则靠压低结算价格、提升结算标准等手段。这样的后果是一些手机广告平台因承受不了高额 运营成本,快速倒掉,行业格局变动剧烈。

有开发者还发现,一些手机广告平台为了增加收入,存在着扣量的情况。比如开发者某天的真实收入是100元,广告平台却只给你90元。

阿狸说,他选择有米广告是因为它的客服和服务器相对较好,不过他也因为激烈的竞争遭遇过无奈。为了让应用程序有更多的下载量,他会把应用上传到 尽可能多的安卓应用商店里。然而,安智市场担心有米广告对自己网站的广告投放形成竞争,利益冲突使安智市场阻止嵌入有米广告SDK的应用程序进场,结果阿 狸的应用只能撤下来,“机锋同有米有合作,就可以上”。

手机广告平台还面临着吸引明星应用程序的问题,这些拥有百万级乃至千万级用户量的明星应用程序,是有米等手机广告公司的重点争夺对象。然而,这 些公司往往更加注重用户体验,相对于个人开发者,有风投支持的他们也不差钱。在南方都市报采访过程中,有些明星应用程序的开发者对从手机广告平台每月获得 的几万、十几万收入甚至更多,要求匿名报道。有些应用程序则干脆退出了与手机广告平台的合作。在吸引到足够多的用户量之后,他们希望以不影响用户体验的非 广告的途径实现赢利。

例如,开卷有益希望通过售卖电子书赚钱。开发出蜜蜂新闻、蜜蜂天气等应用的深圳播思通讯,把与中移动应用商城等开展外包业务当作主要收入来源。 “目前国内的手机广告平台还不成熟,外面大品牌的广告主还没进来,通过手机广告来赚钱还不现实,他们(手机广告平台)也在想办法”,龙世渚认为。

其实“很疲倦”

他们正在研发新的广告展示形式,当手机广告轮播一遍之后,会自动收缩成屏幕边的一个小点,以减少对用户体验应用程序的影响。

而个人开发者想生存,必然会与用户造成矛盾。“个人开发者不像一些公司拿风投。用户不喜欢广告,你却偏偏加广告”,阿狸说。不过,他认为用户不 能接受广告的原因是,广告来得太突然了,“之前大家用的都是塞班、MTK系统,这些系统都没有像安卓,苹果系统这样的广告,安卓用户都是塞班、MTK系统 过来的,看见广告就接受不了”。

令阿狸不解的是,生活中,电视、收音机、地铁、网站,广告无处不在,用户就偏偏无法接受手机的广告。“你们报纸上面都有广告的,一样有人订,也就是说用户默认接受你们上面的广告了”,看来用户习惯的培养尚需时日。

手机广告平台也在想办法,尽可能降低广告对手机用户的骚扰。他们正在研发新的广告展示形式,例如类似知名社交应用Path的菜单那样,当手机广告轮播一遍之后,会自动收缩成屏幕边的一个小点,以减少对用户体验应用程序的影响。

有米副总裁李展铿认为,随着移动互联网行业的快速发展,手机广告这块蛋糕会越来越大,他预计今年有米的收入会突破6000万,公司估值突破3 亿。这也意味着年仅二十五六岁的陈第、李展铿的身家,已过千万。借着移动互联网的东风,加上自身打拼的独特经历,他们比同龄人多了几分成熟。

2012年4月1日是有米两周年的纪念日,有米公司全体员工在华工隔壁的穗石村吃了顿庆贺宴,下午他们来到大学城中心湖附近放风筝。南方都市报记者向身着蓝色有米T恤的陈第表示祝贺,他满脸轻松说,“谢谢,还需继续努力”,然后开心地继续放风筝了。

阿狸可没有那么轻松,他的QQ签名一直是“很疲倦”。即使每个月从应用程序里赚到过万收入,他的不安全感一直很强烈,这个行业变化太快,“感觉 不稳定,前面的路还不算很确定,就是怕,突然有一天,广告平台倒闭了,那就惨了”。他决定继续一边工作一边开发应用程序,趁着形势好,“能捞多少是多 少”。

“那你现在有没有拍拖?”

“还没有啊。”

“没有拍拖,会不会因为太多时间在做这个(应用程序开发)?”

“这个是有一点啊。”

记者注意到他的小米手机里,其中一款应用程序名为“虚拟女友”。

Q&A

1.如果你现在没在做App,你会做什么工作?

阿狸:还是会做有手机相关的工作。

2.你手机安装了多少个应用?最常用的是哪3个

阿狸:我手机安装了几十个,不超过100。经常用的是,安卓市场、UC、QQ

3.列车以每小时100千米的速度奔驰,你敢站在车门口的踏板上吗?

阿狸:敢

4.早春时节,河里的水还十分寒冷刺骨,你敢成为所有人中第一个下水游泳的人吗

阿狸:敢

5.你知道船超载是会倾覆的,现在你急着过江,你敢跳上那艘已经超裁的渡船吗?

阿狸:敢

6.你做过的最夸张的事情是?

阿狸:最夸张?怎么说呢!!最大胆的就是之前读书时,和同学打赌跳楼梯级,从20级跳下了。

7.你心目中的英雄?

阿狸:心目中的英雄很多啊,只要我看过那些名人的资料,基本上都是我的英雄。

8.如果你获得了做任何事都可以的超能力,你愿意用它来做些什么?为什么?

阿狸:帮助有需要的人了,因为自己有了超能力,不帮助别人,超能力等于没有。就是把超能力用到需要用到的地方。

9.如果让你来设计手机,它会是怎样的?

阿狸:屏幕要够大,电池耐用,功能强大,系统要智能。

10.选择女朋友的标准?

阿狸:标准?看得顺眼,心地善良,孝顺。

11.下一个应用是怎样的?

阿狸:下个应用是个视频软件,现在主要是更新我之前的应用为主。

链接

创业ID

深圳播思通讯技术有限公司

创始人名字:龙世渚

创立时间:2010.10

地点:深圳

应用覆盖平台:IOS、android

应用上线商店:APPstore 安智市场 安卓市场 机锋 品牌手机的应用商店均有上线

另外MOTO等行货手机有内置

注册用户数:蜜蜂新闻400多万 蜜蜂图书200多万 蜜蜂天气300多万

融资状况:无。之前有接触过盛大,但对方是战略投资,要控股权,就没有考虑。现在我们不需要这些钱了,就没有融资。

Q&A

1.如果你现在没在做App,你会做什么工作?

三网融合业务开发

2.你手机安装了多少个应用?

二三十个应用,用得最多的是日程、新闻、天气预报

3.列车以每小时100千米的速度奔驰,你敢站在车门口的踏板上吗?

敢,如果有扶手的话

4.早春时节,河里的水还十分寒冷刺骨,你敢成为所有人中第一个下水游泳的人吗

5.你知道船超载是会倾覆的,现在你急着过江,你敢跳上那艘已经超裁的渡船吗?

6.你做过的最夸张的事情是?

我的游泳技术很烂,有次和朋友一起游过很急的江水,差点上不了岸。

7.你心目中的英雄?

乔布斯

8.如果让你来设计手机,它会是怎样的?

类似苹果这样,注重用户体验的手机。

9.选择女朋友的标准?

心地善良,聪明一点的。

10.下一个应用是怎样的?

三网融合,移动互联网、互联网、电视整合起来的视频等应用。

创业ID

开卷有益

创始人:揣永国 李尚鹏

创立时间:2008.5

创立地点:上海

融资纪录:千万级别,具体数字不能透露。

用户量:1500万

应用覆盖平台:windowsmo-bile、android、IOS

应用上线商店:与国内的主流应用商店均有合作

Q&A

1.如果你现在没在做App,你会做什么工作?

如果没创业的话,应该是在其他公司上班,不过还是做移动互联网。

2.你手机安装了多少个应用?

装了100多个,最常用的是开卷有益、海豚浏览器、QQ

3.你知道船超载是会倾覆的,现在你急着过江,你敢跳上那艘已经超裁的渡船吗?

上不上船要看风险系数

4.你做过的最夸张的事情是?

也没有吧,比较中规中矩

5.你心目中的英雄?

目前还没想到是谁

6.如果让你来设计手机,它会是怎样的?

好好规划一下,其实之前我有做销售手机的工作,后来做软件也有很多想法。如果做手机的话,会考虑改善手机的便携性

7.选择女朋友的标准?

几年前已经结婚了。性格要匹配吧。

【8大秘笈开发者也会有春天】

作为与网络、移动终端并列的移动互联网的三大支柱之一,应用程序使移动互联网空间得以无限拓展。以iPhone手机的出现为标志,基于Ios、 Android、WindowsPhone等系统的移动应用开发方兴未艾,加之AppStore、GooglePlay等应用商店,日渐完善的合作流程与 便利的支付方式降低了应用开发的门槛。

很多人梦想着AngryBirds式的奇迹在自己身上发生,他们渴望自己开发的应用程序能够一夜暴红。于是互联网巨头、软件服务提供商、个人开发者甚至是运营商和硬件制造商都准备在移动应用开发上大干一场。

据《2011年度移动开发者生存状况调研报告》,移动开发者中,60.9%的年龄分布在18-25岁之间,即高校学生或刚刚参加工作的年轻人。78%的开发者来自20人以下的创业型团队,且94.6%的开发者为男性,看来应用开发是“男人的战场”。

这些开发者多分布在北上广深等一线城市,46%的开发者月收入在4000-8000元之间。毫不意外的是,Android、Ios和WindowsPhone是应用开发者选择的主要开发平台,比例分别为79.9%、28.2%和10.2%。在前手机巨头诺基亚(微博)放弃塞班和MeeGo系统之后,基于这两个平台的开发者锐减至3.1%。管理类工具应用、电子商务类、游戏类应用最为开发者所青睐。

5年工作经历是应用开发者职业发展的分水岭,在某一特定领域坚持5年后,无论是薪酬还是工作岗位均会有质的飞跃。开发者的自身素质也不容忽视,良好的自学能力、精通多种开发语言,依旧是开发者在职场获得加分的重要砝码。

给应用开发者的8大建议

1和同行做朋友

闭关锁国、固步自封只会使你开发的应用离用户越来越远。和同行做朋友,以开放的姿势融入到整个Android开发的圈子中去,不但能够做到资源的合理共享分配,也能在圈子内提高自己的品牌知名度。

同时上传自己的软件到任何可能的market上,增加软件品牌的曝光机会。如果你的英文够强,国外的机会也不要放过。虽说官方的只有GooglePlay,但是国外类似于Orange的第三方商店还有很多。

2关注用户,知道什么是他们需要的

要知道,产品最终的使用者是用户。只有他们才是评判我们开发的应用是否有用的唯一标准。花更多的时间关注用户,通过用户调研、角色卡片等方式来 确定用户到底想要什么。而不是拍拍脑袋,说“我觉得我们做这个对用户很有用。”永远记住,用户一次不好的评价可能使你辛辛苦苦建立起来的品牌形象毁于一 旦。

3关注各大Android社区,解决用户的问题

社区推广绝对是品牌推广最廉价也是最有成效的方式之一。每天都有无数用户在安卓、机锋等Android论坛交流心得寻求帮助。在这些社区注册自己的品牌名,主动帮用户解决问题,建立权威。

4不要忽视网站建设

网站是建立品牌最好的地方,个人开发者可以用wordpress建一个博客网站,做些简单的SEO工作,保证自己的网站在查询自己的品牌名时排在搜索引擎第一位。每日坚持更新一些关于android的最新消息,使用自己独特的品牌模板来分享自己的观点。

5借助QQ群和微博的热潮

微博的迅速发展已经使它成为品牌推广不可忽视的地方,一次成功的微博推广给品牌带来的知名度提升远胜过传统的推广模式。而QQ群则是获得用户直 接反馈的最佳选择,多和网友互动,获取最新应用试用的反馈,解答大家提出的问题。记住,和用户面对面的交流是品牌建设的最佳方式。如果想做外国市场,也可 以通过建立Facebook、Twitter和Youtube账号进行推广。

6在应用中留下联系方式,让用户第一时间找到你

你的应用永远不是十全十美的,用户在使用的时候总是会遇到各种问题。在应用中留下联系方式,让用户第一时间找到你。不仅帮用户解决了他们使用中 的问题,也为自己进行免费的用户调研提供机会。回复用户的邮件最好用事先准备好的模板,带上你的品牌Logo和网址等相关信息。

7参加各种行业会议

积极地参加诸如移动互联网大会、Anroid开发者会议等一些正规的行业会议。主办方往往会在会议中带来关于Android和行业的最新动态。同时也能扩大与同行的交流合作。要记得,穿上属于自己品牌的文化衫参加大会,也会引起不小的反响哦。

8媒体永远都是朋友

目前Android开发团队不多,做品牌的就更少,在发布了一些软件之后,可以主动联系纸媒或门户网站的科技板块编辑,找些文笔不错的朋友写些测评,这些媒体都会很乐意帮你发布。整理自36KR

什么是重构,什么不是重构

有时候,会有程序员跑到我这里说他们不喜欢某个东西的设计,“我们需要给它来个全面的重构”,来纠正里面的错误。哦,哦。这听起来可不是个好主意。而且这听起来也不是重构…

重构(Refactoring)这个词最初由Martin Fowler 和 Kent Beck给下的定义,它是

一种修改,使软件的内部结构更容易理解,在不改变软件的可见行为方式前提下使软件更容易变更…它是一种有节       制的整理代码、使bug产生几率最小化的方法。

重构的结果是引用了快捷方法、去除了重复代码和死代码,使设计和逻辑更加清晰。是在更好的、更聪明的使用编程语言。是在优势利用你现在知道、但当时的开发程序员并不知道——或并没有加以利用的信息。不断的简化代码,让它们更容易理解。不断的使它们在将来的变更变得更容易、更安全。

在这个过程中发现了bug、修改bug,这不是重构。优化不是重构。强化异常捕捉、增加预防性代码不是重构。让代码更容易测试不是重构——尽管重构能达到相同的效果。这些所有的事都是有益的。但这些都不是重构。

程序员,特别是做维护工作的程序员,清理代码是他们的日常工作之一。这是基本工作,是必须要做的。Martin Fowler等人的贡献是使重构代码的最佳实践方法格式化,并把常见的、证明切实有效的重构模式——重构的目标和重构的步骤——进行归档分类。

重构很简单。尽可能在写代码前先写测试能够防止你犯错误。小规模的、独立的、稳妥的对代码进行结构上的调整,每次调整完后都要进行测试,确保你没有改变代码的行为特征——功能和以前一样,只是代码上看着不同。重构模式和现代化的IDE里的重构工具使重构变得容易、安全和代价低廉。

不要为了重构而重构

重构可以被当成一种能给你的代码变更带来帮助的措施。代码重构应该在你进行代码变更前进行,这样能让你确信你对代码理解了,使你更容易、更安全的把变更引入代码。对你的重构动作进行回归测试。然后进行纠正或变更。再次测试。之后可能需要对更多的代码进行重构,使你代码变更的意图变得更加清晰。再次进行全面测试。重构,再变更。或变更,然后重构。

你不是为了重构而重构,你重构是因为你想做其它的事情,而重构能帮助你完成这些事情。

重构的范围应该受你需要实施的代码变更或代码修正来决定——为了让代码变更更安全和更简洁,你应该做些什么?换句话说:不要为了重构而重构。不要对那些你不打算进行变更或不会变更的代码进行重构。

为理解而做简略重构(Scratch Refactoring)

Michael Feather的《Working Effectively with Legacy Code》这本书里提到了简略重构(Scratch Refactoring)的概念;Martin Fowler称之为“为理解而重构”。这是用来对付那些你不理解的(或不能忍受的)代码,清理它们,这样在你打算真正动手修改它前,你能对它们是干什么的有了更好的理解,同样也对你debug这些代码有帮助。一旦你能清楚了一个变量或方法的真正意图,重命名它们,给它们一个更合适的名称,删除那些你不喜欢看的(或觉得没有用的)代码,拆解复杂的条件语句,把长程序分解成数个容易理解的小程序。

不要惦记着复查或测试这些改动。这是为了让你的重构快速的推进——这能让这些代码以及它们的运行原理在你的大脑里产生一个快速但不完备的原型。从中学习,然后丢掉它们。简略重构还能让你尝试各种不同的重构途径,学到更多的重构技巧。Michael Feathers建议说,在这个过程中要留意那些看起来没什么用处、或者特别有用的东西,这样当你完成此练习后、要真正修改它们时,才能把事情做正确——修改时一点一点来,讲究方法,边修改边测试。

什么是“大规模”重构?

对代码进行简单的但又明显的重构:消除重复,修改变量和方法名称使其更有意义,提炼方法使代码更易懂、更易复用,简化条件逻辑,把无意义的数字换成命名的变量,把相似的代码集中到一起。通过这些重构,在代码的可理解性和可维护性上,你能得到巨大的回报。

相对于这些较小的、行内的重构,更加重大的设计上的重构与之有明显差异——这就是Martin Fowler所指的”大型重构”。大的、代价很高的变动,附带有大量的技术风险。这不是你编程过程中的清理代码和设计改进:这是根本性的重新设计。

有些人喜欢把对一个系统的重新设计或重写或重新搭建平台或返工叫“大规模重构”。因为技术上讲,这些并不改变软件功能特征——业务逻辑、软件输入和输出仍和以前一样,“只是”设计和代码实现变了。它和常规重构的区别看起来就是:一个是重写了一段代码,一个是重写了一个系统,只要你是一步一步做下来的,你都可以称之为“重构”——不管你是长年累月被困于将一个老系统换成新代码,还是对系统架构进行大规模的改造

“大规模重构”会变的很糟糕。你可能需要花数周、数月(甚至数年)才能完成,需要你对软件的很多部分进行改动。软件会因此不能运行,需要分多次发布这些变更,需要你做临时的台架(scaffolding)和变通方案——尤其是你采用短周期的敏捷开发方法时。这时Branch by Abstraction这样的实践方法就派上用场了,它能帮你在长周期内管理代码中的变化。

而且在开发新代码的同时你还要维护旧代码,这使得代码版本控制很麻烦,变更起来不方便,致使代码很脆弱,易犯错——这正和重构所预期的目的背道而驰。有时这样的情况会一直持续下去——这种新旧代码交替的过程永远不能完成,因为能获得最大利益的部分都是最先完成,或者因为最初带来这个想法的顾问已经干别的去了,或者是预算被消减,而且你也讨厌维护这样一个拖拉的项目。

这些是重构——那些不是

在这种重型的项目开发过程中混入重构的概念是不对的。它们从根本上就是另外一种工作,带有完全不同的开发成本和风险。它混淆了人们对什么是重构、重构能干什么的认识。

重构可以、也应该融入到你写代码或维护代码的过程中——作为日常开发/质量管理的组成部分,就像写测试和代码审查一样。重构应该被安静的,持续的和低调的完成。它需要我们把工作精力分出一部分给它,它需要在我们的工期评估和风险评估中考虑到它的存在。如果做的正确,你不需要去解释或向外人验证这部分工作。

花几分钟、一两个小时做重构,就像是你开发过程中的一种修改,是工作的一部分。如果它让你花了数天时间,或者更长,那不是重构;那是重写,或重新设计。如果你需要明确的留出一部分时间(或整个sprint周期)来重构代码,如果需要为清理代码而申请批准,或把清理代码作为一个开发需求,那你不是在重构——即使你用了重构的技术和工具,你仍然做的是另外一种工作。

有些程序员认为对代码进行根本的、重大的修改是他们的权利和义务,在重构的名义下进行重新设计、重写,为了将来,也不辜负自己的技艺。重新设计和重写有时候是你正确的该做的事情。但出于坦诚和表述清楚,请不要把这些活动赋以重构的名义。

[本文英文原文链接:What Refactoring is, and what it isn’t ]

Android NDK for X86 – 两点解释

今年4月的IDF中,我的同事和我主持过一个实验课,讲解为x86平台进行android NDK应用的开发和移植,实验室都是基础性的,旨在让对NDK并不熟悉的开发人员对此有一个概念并能利用在实际的开发工作中。之前的一段偶尔发现有人对实 验课发博客进行了描述【1】。 可惜其中有些信息并非完全一样,所以发此博客解释一下,并且想针对x86下的NDK相关开发进行一系列解释说明,也欢迎大家指正。

针对【1】中提到的内容,解释几点如下:
1)开发平台和环境: 并非必须linux系统才可以,所有android原有的开发环境里面都可以进行。
2)模拟器镜像的获取方式: 英特尔并未提供专门供大家下载的地方,还是建议使用官方提供的模拟器管理器来下载,当然也可以从source code中直接编译出。
3)有关模拟器的运行效率: 如果开发环境使用的是linux系统,由于采用了KVM技术其运行速度是很好的,如果大家有兴趣,可以试试,对软硬件都有部分要求,硬件最好能支持VT, 系统里面要加载kvm模块。 当然针对windows和mac,x86平台都进行了优化工作,具体参见【2】,我后面也会再次提到相关的一些内容。

【1】http://www.eefocus.com/yuanqian926/blog/12-04/246454_3812b.html
【2】http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/