销售热线:

4000-900-632
科创致远软件 > 新闻中心 > 行业新闻 >

Java 程序员转 Android 开发有哪些经验可以分享?

A:
  1、如何『转』的问题。其实Java程序员要自学Android开发的基础知识还是没什么难度的。毕竟语言相通,特性相似,阅读Android源代码的门槛也变得很低。另外作为一个有工作经验的合格程序员,自学能力和相关的基础知识都应该不是问题,学Android都会相对轻松很多。所以,Java程序员转做Android可以看成是一次『增量更新』,只需要学习一下Android的基本组件——Activity,ContentProvider,Service,BroadcastReceiver;了解一下Android中的Intent,Handler,Adapter以及各类事件的传递方式(onClick,onTouch等),同时辅助以一定的代码量,JNI,AIDL什么的可以抽空看下,学会Android真的是很快的事情,。可能有人关心学习Android具体要花费多少时间,我可以给出我的经历给大家参考下,在接触移动互联网之前,做了一年多不到两年的J2EE和.NET的开发,主要针对ERP,后来因为厌倦了国企/甲方/基本算不得ERP的ERP后自学Android,辞职前边工作边学两个月出头,辞职后继续学习研究了一段时间,不到一个月,而后进入国内一家移动互联网广告平台负责广告SDK的开发(已辞)。所以如果是Java功底更深厚的各位前辈,如果学习Android开发,入门——上手——到能应付中等难度工作甚至也许都不需要两个月
  2、『转』之后的问题Android上手不难,但是在工作中总会遇到自学过程中并没有预料到的情况。这个时候,才是考研一个人的时候。一般来说,常见的问题和难点都可以在StackOverflow上找到,常用功能/控件的实现也可以在GitHub上找到。虽然不一定每次都可以找到那么合适的轮子拿来就用,但参考的价值同样很大。虽然很多前辈都说过『不要重复发明轮子』但对于手机这样一个如此秀气的设备和低端平台下少的可怜的可用内存,定制式的东西有时候比通吃的玩意更来的靠谱一些。前人的作品会给你启发,提供给你一条思路和若干需要注意的细节。仅拿手机上非常常用的『下拉刷新』功能来说,不同App之间还是很有差异的——试试新浪微博的下拉刷新和唱吧Android版的下拉刷新就知道后者是有多惨不忍睹了~控制内存开销,优化onTouch事件是永恒的主题做Android之前,一定要做好这样的心理建设
  『你一定会花费比iOS程序员更多的时间但仍就可能无法得到想要的结果』Android的UI线程可无法获得如iOS下那么高的优先级,当然,还有不少特性上的不同导致Android做起来也许远不如iOS轻松,甚至还不得不面对当前国内都是以iOS做设计,Android照搬的做法,并且由此产生很多雷同脑残但坚定不移的设计——难道只有我觉得单手持机的情况下,点击下方返回键远比点击UI左上方的返回键要方便得多?好吧,不吐槽了,做Android会有压力,来自于各种各样的比较,抗击打能力太弱同时又不失标准没心没肺型的话可能会做的很郁闷。
  ----------------------------------------------------------------------------------------------------
  B:
  首先,你需要抛弃『UI元素像素位置』这个概念。Android本身是允许通过设定元素像素位置来制作UI的,但是!你这样做导致的结果就是大批量机器不适配,那个显示效果简直就是惨不忍睹。不要妄想通过获取屏幕大小来调整UI,因为你永远不知道那个屏幕可能会是什么猎奇的形状……LinearLayout,这个在swing或者swt上可有可无的东西,在Android上是必须要精通,如果不精通这个还有其他Layout在Android下的各种属性和显示效果……你要是开发了什么作品请提醒我,我绝对劝使所有人不要用……
  然后说一下Android SDK的一个恶心的地方,其内置的apache相关库不是最新的。是的,当你想着使用 HttpClient 4.X系列时,你会发现内置的那货貌似是2.X的……关于网页地址里面包含空格这个问题,你懂的然后我们再来谈一下Activity这货。首先记住一点,Android的界面和swing或者swt界面是完全不同的class。onCreate()这个初始化方法我们就不多谈了,关于界面class之间传值需要使用Intent这种形式,这个需要学习一段时间的……特别是Bundle和Parable这两货……具体来说感觉Android的每个界面都是一个小程序,程序之间通过argv这种玩意来传递信息……感觉上去就很蛋疼,实际上用起来更加蛋疼……
  最后提一下Android SDK的另外一个奇怪的地方,那就是你的纯后台class和界面class地位是不一样的。比如说我有一个设置通过Android SDK内置方法SharePreference来读取,这个方法在Activity下面是好的,但是在纯Java Class(不extends任何Android class)里面就是不能用的……谷歌通过事实告诉我们:他丫自己的东西(Android的库)只能给自己的孩子用。啊,最后说一下Android UI设计。Android UI设计是博大精深的,至今为止……有14个版本,前面的版本估计只有谷歌自己人看得到,后面的我们能看到的和现在占据大众的Android 2.3不是一个时代的东西……如果你要做大众软件,那么……别看Android UI Design Guideline了,自己想吧……
  对了对了!Android从4.0开始禁止在UI线程中出现访问网络的内容,从4.0开始的哦!所有访问网络的东西都需要建立新的线程哦!这货是没有正确报错存在的,如果因为这个程序出错,出现在Error信息里面的永远是你不知道的错误哦~~~一般人我不告诉他的~~~
  -------------------------------------------------------------------------------------------------
  C:
  先说说Java和Android程序的区别:Android是主流智能手机的操作系统,Java是一种开发语言,两者没有好坏优劣之分,只是两种职业岗位的选择。学安卓从事移动互联方向开发,学Java从事软件、网站开发。而安卓上的应用大多是Java编写的,所以建议在安卓前期的Java学习阶段中,要用心学好。
  言简意赅的说说“转”前的准备:其实Java程序员要自学安卓开发的基础知识还是没有什么难度的,毕竟语言相通,特性相似,阅读安卓源代码的门槛以比较低一些,作为能够考虑“转”的合格的程序员的你,自学能力和相关的基础知识应该不是问题,学习安卓也相对比较轻松一些。所以Java程序员转安卓开发可以看做是一次“增量更新”,只需要学习一下安卓的基本组件:Activity、ContentProvider、Service、BroadcastReceiver;了解一下安卓中的Intent,Handler,Adapter以及各类事件的传递方式(onClick,onTouch等);同时辅助一定的代码量,像JNI、AIDL什么的都可以看一下;你还要摒弃“UI元素像素位置”这个概念,安卓本身是允许通过设定元素位置来制作UI的,如果你这样做导致的结果便是大批机器不适配,那么显示效果就有点惨不忍睹了,所以不要妄想通过获取屏幕大小来调整UI,像LinearLayout在swing或者swt上可有可无的东西,在安卓上是必须要精通的。还有熟悉ide,安卓提供的开发框架、Java及其他编程知识等。
深圳致远软件专业JAVA系统定制
产品方案 预约演示 价格咨询