专业基础 面试 第二天(面试题2019年整理)

今天的面试问道最多的是,你知道什么吗?你的项目里用到了吗?或者什么情况下常用?

谈谈你对Service的理解

1、service 是什么
是一个在后台执行长时间运行操作而没有用户界面的应用组件。
2、跟广播一样 主线程中运行 启动后会一直在后台运行
3、可由其他组件开启,启动后会一直在后台运行,即使activity已经销毁。 例如activity broadcast receiver
4、 activity 可与service进行内容交互
5、service 和Thread 的区别
程序执行的最小单元 service 分配cpu的基本单位
安卓的特殊机制 主线程 相对独立
Service 不能做耗时操作 (ANI) Thread 子线程
6、两种启动方式
onBand() onCreate() onStartCommed(int 系统自动重启 )onDestrod()
startservice 无限期运行 与acticity 是否运行无关了
7、 BandService
多个activity可以绑定一个service

如果针对 Android 8.0 的应用尝试在不允许其创建后台服务的情况下使用 startService() 函数,则该函数将引发一个 IllegalStateException。
新的 Context.startForegroundService() 函数将启动一个前台服务。现在,即使应用在后台运行,系统也允许其调用 Context.startForegroundService()。不过,应用必须在创建服务后的五秒内调用该服务的 startForeground() 函数。
你的项目中用到Service了吗

为了满足开发者处理后台任务的需要,Android提供了Service这个组件,同时为了方便开发者使用Service,又封装了一个IntentService。当然,现在很多App在处理后台任务的时候并没有优先使用Service,而是自己实现了一套线程池机制或者使用Android提供的AsyncTask来执行后台任务,这里我们来分析下他们各自的优劣:

  • Service的优点是系统原生支持,使用方便;创建进程方便;可以提供给系统内其他App使用;优先级高,当App退到后台后不宜被杀死。缺点是由于启动Service涉及到多次IPC,运行效率不高,而且受限于系统接口,使用不够灵活。

  • 线程池的优点是运行效率高,配置和使用灵活。缺点是多进程实现不方便, 由于Android实现了一套进程托管机制,我们不能直接创建一个新的进程,而只能通过四大组件的形式创建新的进程。

基于以上分析,我们可以看出,一般普通的异步任务,比如网络请求,数据库或者文件相关操作,我们都会使用线程池的方式来做,因为这样使用的系统开销小,运行效率高,而且随着业务逻辑的复杂度增加,扩展性也更强。然而,对于一些特殊场景,比如进程保活,使用第三方SDK服务比如地图,IM等,就需要使用Service来实现,因为这些服务一般与App主进程隔离开,需要运行在新进程中以防止App主进程发生异常崩溃时,牵连第三方服务也挂掉。

android 的混合开发

7个混合式移动开发框架

  • IONIC 是目前最有潜力的一款HTML5手机应用开发框架。通过SASS构建应用程序,它提供了很多UI组件来帮助开发者开发强大的应用。它使用JavaScript MVVM框架和 AngularJS来增强应用。提供数据的双向绑定,使用它成为Web和移动开发者的共同选择。即将发布的AngularJS 2.0将会专注于移动开发,相信IONIC一定会取得不错的成就 。

  • Mobile Angular UI是使用 bootstrap 3 和 AngularJS 的响应式移动开发HTML5框架。
    Bootstrap 3/ AngularJS
    Bootstrap 3 Mobile组件,比如switches, overlays和sidebars,这些都是bootstrap中没有的。
    AngularJS modules, 比如 angular-route, angular-touch 和 angular-animate

  • Intel XDK 是Inter开发的一款跨平台开发工具,我们可以很容易的通过Intel XDK开发应用,你需要做的只是下载他们的应用开发工具 ,有Linux、Windows和Mac版,它还提供了很多个开发框架,比如Twitter bootstrap, jQuery Mobile 和 Topcoat.

  • Appcelerator’s Titanium 不同于其它框架的是,它是一个开源的框架。

  • Sencha Touch 同样也是HTML5手机应用跨平台开发框架,运行iOS/Android/Blackberry。它已经诞生很多年了,现在已经成为很常用的混合式编程开发框架。

  • Telerik’s Kendo UI 是一个强大的框架用于快速HTML5 UI开发。基于最新的HTML5、CSS3和JavaScript标准。

  • PhoneGap 恐怕是最老的一个框架了,相信很多人都已经听说过甚至使用过它,但是PhoneGap是基于开源的 Cordova 商业版本。

开发中用WebView吗?

WebView 的介绍

什么时候用到WebView的混合开发
了解aidl吗?

参考:https://blog.csdn.net/u011240877/article/details/72765136

Hybrid App(混合模式移动应用)

React
React native

1、PhoneGap
2 、IONIC
3、WeX5
4、APICloud
5、NativeScript
6、Kinvey
7、ExMobi
8、Flutter 1.0 已发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值