当前位置:  编程技术>移动开发
本页文章导读:
    ▪为何图灵奖获得者戴克斯特拉痛恨 BASIC 语言        为什么图灵奖获得者戴克斯特拉痛恨 BASIC 语言 戴克斯特拉先生是一位经常会被人们拿来引述的著名计算机科学家,人们谈论最多的是那些被他挑破的让人难以接受的事实真相。经常被人反.........
    ▪ 【新游戏工业的5年之变】        【新游戏产业的5年之变】 就像“轰”的一声,游戏被推到了每个人面前。我们甚至都没有反应时间,就已经被各种研究机构贴上了“玩家”标签——2012年7月,美国游戏研究机构Niko Partners.........
    ▪ 运用proguard混淆打包APK       使用proguard混淆打包APK     在打包发布android应用的时候,可以应用proguard来对代码进行混淆,防止有人反编译apk获取源代码。      之前创建android 2.3的项目的时候,会在根部录下自动创建pr.........

[1]为何图灵奖获得者戴克斯特拉痛恨 BASIC 语言
    来源: 互联网  发布时间: 2014-02-18
为什么图灵奖获得者戴克斯特拉痛恨 BASIC 语言

戴克斯特拉先生是一位经常会被人们拿来引述的著名计算机科学家,人们谈论最多的是那些被他挑破的让人难以接受的事实真相。经常被人反复提到的一个就是他对BASIC语言的痛斥,但往往人们谈论这件事情时都忘了提到当时的背景——

对于一个之前接触过BASIC语言的学生,你基本上不可能教会他如何正确的编程:因为作为一个程序员苗子,他们已经脑残,无可救药。

戴克斯特拉先生的这番言论是来告诉大家“如何看出事实背后可能是对你有害的真相”——对有些事实人们广为接受,所有没有人思考它们,或不屑一顾,或 避而不谈。戴克斯特拉先生对于这个问题给出的答案被证明极具轰动性。他用这种方式非常有效的挑起了争论,时至今日我们仍在讨论。

人们经常会忘记,在1975年,那时的编程跟我们如今有很大的不同。戴克斯特拉先生斥责的Dartmouth Basic——这是一种享有荣耀的汇编语言,它不是我们如今使用的BASIC语言——

  • 变量名称只有一个字符,或外加一个数字
  • 尽管有For语法可用,但循环,break,以及其它逻辑都用无约束的goto语句实现。
  • 空格在表达式间可有可无。
  • 有子程序。子程序通过行号调用或通过return转向。
  • 所有的参数都通过全局变量来传递。
  • 26个用户自定义函数可以排列成FNA—FNZ,里面可以有一行代码。
  • if语句被限制在一行上。

这样的限制我可以继续列下去,但事实非常明显:你很难用它写出可读性好,易于理解的程序。我们如今想当然应该有的一些语言特征它都没有。这种状况一直等到BASIC之后的语言发展起来才结束,成为我们如今熟知的编程语言。

当我们在学习第一种编程语言时,你可能会一直在用其它语言风格进行编程(“你可以用任何语言写出FORTRAN风格代码”)。程序员的成长过程中最难的不是如何获取新知识,而是如何抛弃陈腐的旧习惯。

学会如何小心的堆起一滩烂泥,这对你写出结构化的程序不会带来任何帮助。即使今日,你也能很容易的发现有些人被教育了basic的现代变体——尽管他们对这种basic老祖先知之甚少。后继者对此有很大责任。

编程很难。荒诞的语言特征让它变得更难,这无助于初学者,同样也无助于专家。戴克斯特拉痛恨basic,其实你也应该痛恨它。残酷的是我们只记住了戴克斯特拉先生尖锐的批评,但却忘了他对计算机编程卓著的贡献——这完全是另外一个话题了。

 


    
[2] 【新游戏工业的5年之变】
    来源: 互联网  发布时间: 2014-02-18
【新游戏产业的5年之变】

在游戏行业这5年的大变局中,无论旧势力还是新贵族,它们所获得成功的价值衰变期正在快速缩短。所有的行业中人都必须紧跟变化形势,否则就要面临被淘汰的命运。


就像“轰”的一声,游戏被推到了每个人面前。我们甚至都没有反应时间,就已经被各种研究机构贴上了“玩家”标签——2012年7月,美国游戏研究机构Niko Partners发布报告,称当年中国移动游戏玩家会有1.92亿,一举超过PC游戏玩家数量;2013年1月,中国版协游戏工委主办的《2012年中国游戏产业报告》称,当年中国游戏市场实际销售收入602.8亿元,首次突破600亿规模。


数字总是枯燥而缺乏想象力,但当我们听到身旁小孩撒娇的声音——“妈妈,我要玩游戏”,也许会猛然醒悟,这已经不是我们理解中的那个游戏世界了。那个时候,玩游戏还是件自己看来很庄严、别人看来很堕落的事情,意味着需要有PC或Xbox的专业游戏设备以及大把的游戏时间。但现在,我们已经习惯了把手机拿给孩子打游戏的妈妈,以及随时退出游戏收起手机的潇洒。


不得不承认,在这场全民游戏的浪潮中,手游正在扮演着重要的角色。尽管只占到全球游戏市场不到10%的份额,手游正在全球范围内重新定义行业的宏大趋势—— 一方面,地球上的每一个自然人都正在被纳入游戏人群;另一方面,以暴雪为代表的制作绝对精美MMORPG游戏的原教旨主义者,却无法抗拒地衰落了下去。


在乔布斯重新发明手机的这5时间特别是近3年时间里,手游的爆发已经重新定义了游戏行业的基本面与内涵细节。这种变化不但颠覆了之前的游戏行业格局,并且深刻影响了每一个人的日常生活,甚至悄悄改变着整个社会的意识形态。


关于这场游戏的游戏规则,正在发生变化。

 

大变局之一:人人皆Gamer
在3年以前的中国市场,无论是客户端游戏还是网页游戏,它们的消费对象都是两极分化的人群:有钱且很有闲的高富帅人群,以及没钱却很有闲的3G人群(Game、Girl和Gamble)。虽然游戏产业舶来中国多年,但这一基本面始终没有改变。甚至在功能手机时代,这一形态仍然保持。

 

然而,智能终端的逐渐普及,已经颠覆了这一基本面。3年以前,Gamer还仅限于描述那些愿意付出大量时间驻足游戏的专业玩家人群,而如今,每一个人都可以是Gamer,前提仅仅是拥有一部智能手机。当游戏玩家数量悄然超过PC数量,游戏消费者已经成为了TMT产业中最长的“长尾”。

 

在这背后,也有着深刻的社会原因。仅仅过了10余年,游戏在家庭中的地位实现了由不受家长欢迎到可以接受,再到全民投入的华丽跃迁。

 

人人皆Gamer的趋势形成的原因,客观层面自然是智能移动终端的普及以及随之而来的游戏操作体验的简单化,获取游戏的便捷化。但在主观原因方面,似乎还没有社会学家对此有明确的认识,那便是在社会快速发展过程中,人们所拥有的时间Arpu值的激增。

 

整个人类的进化史,也是人类变得越来越忙的历史,这一点并无争议。然而,以互联网为载体的信息革命的爆发,使得这一加速趋势突然跃迁。在人们逐渐变得不得不、并且越来越需要把自己的大脑捆绑在信息海洋并且要求做出判断的生活里,人们的时间显得异常宝贵,换句话说,时间的Arpu值逐渐提高。

 

此时,带有“生活在别处”色彩的游戏,在智能移动终端的普及下迅速降低了娱乐门槛,迎合了人们的心理需求。

 

作为新手游第一阶段里程碑,《愤怒的小鸟》、《植物大战僵尸》和《水果忍者》三款游戏的意义,就在于宣示了这种新局面。

 

游戏行业在3年内发生的大变局对整个社会的变革推动尚有待发酵,但“春江水暖鸭先知”,这种人人皆Gamer的基本面变化,已经导致了从游戏产品开发思路和渠道的一系列产业连锁反应。

 

大变局之二:游戏成为快消品
3月26日,盛大游戏公布2012年第四季度财报,净营业收入为10.82亿元,同比下滑25.9%;净利润2.14亿元,同比下滑29.6%。盛大游戏CEO张向东在财报分析会议上表示:盛大游戏今年将在中国市场推出手机游戏。

 

盛大们终于要转型了。实际上,暴雪和盛大面临的变局,并非是两者的游戏质量和市场战略的错误,而是整个行业氛围的变化,持有游戏原教旨主义的它们对此的反应过于迟钝。

 

在端游火爆了8年之后的2008年,页游突然崛起。在之前的8年中,借网游业务上市的中国端游公司只有9家,运营的网游产品也只有300款。而以轻量级内容为卖点的页游公司却实现了游戏玩家的第一轮泛化和产品的快速迭代。虽然游戏画面及交互内容比之端游都相去甚远,但页游群体的发展速度出乎所有人意料。

 

显然,手机游戏是比页游更轻量级的游戏,它的诞生要比网页游戏早。但Wap和Java时代的手游质量、数量和支付渠道的瓶颈,仍然没有对游戏业的大格局形成触动,2009年之前手游的玩家和页游玩家高度重合,几乎全部是消费能力低端的3G人群。

 

在2009年的智能手机普及大潮到来后,解决了渠道与支付问题的海量高质量手游,一下子将大量玩家群体从PC 端吸引到了移动端,于是Gamer的数量实现激增。

 

实际上,优秀的页游和手游的Arpu值,也许并不低于优秀的端游。

 

这一基本面的变化,使得游戏公司的定义和产品形式都发生了根本性变化:一方面每个人都可以成立游戏工作室;另一方面游戏体验门槛被降低到几乎为零,短平快成为了几乎所有游戏的特色,产品的快速迭代成为了新游戏时代的游戏规则。正如澳洲电信旗下的移动互联网渠道公司——亮点时间CEO蒲东皖对《商业价值》杂志精确指出的那样:游戏成为了快消品。

 

从这个角度看去,如果说页游相对于端游是改革,那么智能手机上的手游相对于前两者来说就是革命。显然,在这场革命中,积极转型的E.A.要比暴雪和盛大们聪明得多。

 

大变局之三:渠道碎片化
虽然每一家游戏开发者都在强调自己的游戏制作如何精品化,但快消品的特色永远是:渠道显得无比重要。于是,手游彻底告别了端游时代的“产(品)渠(道)一体”规则——大量的独立渠道和发行代理公司出现,并且在渠道投入上付出的成本逐渐加码。

 

而游戏开发者这样做的结果,又连锁导致了渠道的碎片化,以及随之而来的竞争白热化、多功能化,并且之前跟游戏业不沾边的势力也开始在人人皆Gamer的背景下,渗透进游戏产业链。这些都是3年前的游戏行业所没有过的现象。

 

时至2013年,手游对整个游戏产业的颠覆已经不仅仅停留在概念和趋势层面。

 

根据IDC和App Annie近日联合发布的报告,在2012年第4季度,游戏玩家在苹果App Store和Google Play中的游戏上的消费额首次超过了在传统的掌机游戏上的消费额。

 

总之,手游正给整个游戏产业带来翻天覆地的革命性变局。在这场变化中,顺之者昌,逆之者亡。

 

这场革命尚未尘埃落定,唯一值得肯定的是,无论旧势力还是新贵族,它们所获得成功的价值衰变期正在快速缩短。所有的行业中人都必须紧跟变化形势,否则就要面临被淘汰的命运。


    
[3] 运用proguard混淆打包APK
    来源: 互联网  发布时间: 2014-02-18
使用proguard混淆打包APK

     在打包发布android应用的时候,可以应用proguard来对代码进行混淆,防止有人反编译apk获取源代码。

     之前创建android 2.3的项目的时候,会在根部录下自动创建proguard.cfg文件,4.0之后需要手动创建。

     在工程中添加proguard.cfg,内容如下:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-ignorewarnings 
-dontwarn   
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

上面的代码可以用于调用第三方包的情况。


然后在项目的project.properties文件中添加:

proguard.config=proguard.cfg   


项目上右击->Android Tools->Export Signed .....输入密码就可以了



如果没有keystore的话需要自己创建。

然后一路下一步,点finish,结果报错

conversion to dalvik format failed with error 1

原因是proguard版本的问题。

去http://proguard.sourceforge.net/下载最新版proguard


解压后将其中的lib和bin两个目录拷贝到/Your android sdk/tools/proguard文件夹下.


再Export一下,成功!


    
最新技术文章:
▪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