背景:由于公司的安卓同事走一个又一个,公司又不新招android同事,就把我这iOS的拉过来弄Android,在这段时间碰到不少问题,也学习不少东西,感触颇深。
安卓和iOS同为移动端,很多相似的地方不言而喻,但各自也有各自的特点。在转Android过程我切身体会到编程思维的重要性,而不是编程的语言,很多编程语法我都是边查边写。但是如何优化,哪里会产生潜在的bug等等,是学习和长期的编程实际开发所培养的编程思维,这一点会决定你的思维高度,直接影响你所写出的代码质量。
号称安卓的四大组件,Activity,Service,Broadcast Receiver以及Content Provider。一、Activity与iOS的ViewController类似,也具有自己的生命周期,也是位于MVC中的Controller层,处理当前的控制器的控件以及业务逻辑。二、Service,安卓具有比较强大的后台运行的能力,而支撑这个能力就是Service,而iOS也有类似于Service的后台运行能力,比如后台播放,后台下载,后台定位,不过这些都是需要在info.plist进注册才可以使用。三、Broadcast Receiver一个接受广播的东西,可以接受整个手机的比如开机,SIM卡变化,短信等,iOS权限没有这么高,但是你也可以监听一些东西,系统有开放部分的东西,比如电池电量的变化。另外,在程序开发中,iOS常用的NotificationCenter,在安卓则是使用常见的EventBus第三方来实现的。四、Content Provider对外共享数据,而iOS没有这个功能,iOS每个程序数据是独立,由于沙盒机制,除了钥匙串中保存数据,本程序的数据是别的App拿不到的,不过譬如程序跳转也可以传些参数,但是那是传数据而并非共享数据。
安卓和iOS权限不同,并且安卓开源。也决定了两者的不一样的特性,安卓灵活多样,iOS封闭单一。同时安卓的安全性和多种适配参差不齐,而iOS则显得稳定而可靠。同样一个推送,iOS则只用丢给OS处理,接受到message则显示出来,进入程序,处理message,程序开发几乎不用管什么。而android是自己的Service进行监听处理,很多使用第三方的推送服务,问题百出又不稳定可靠,也是困扰我很久的事,由于国内很多手机厂商不支持Google Service,所以自己的监听通知的Service很容易被杀死导致通知接收不到的问题。在6.0以前,权限授予是一次性在安装的时候授予的,不人性化,6.0以后像iOS一样在使用的时候弹出给用户确认,而且权限可以拒绝和接受,不过加大了android开发的工作量。
由于刚接手安卓,还有很多知识有待补充,这也是随想所记,后期还有待更正和修改,接触很多是项目开发过程中所碰到的问题...
网友评论