当前位置: 首页 > news >正文

做英文网站seo 是什么

做英文网站,seo 是什么,鄂州网站设计制作,鄂州网站制作最后 总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充…

最后

总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充足准备。

这里我为大家准备了一些我在面试后整理的面试专题资料,除了面试题,还总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料分享给大家,希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

毕竟不管遇到什么样的面试官,去面试首先最主要的就是自己的实力,只要实力够硬,技术够强,就不怕面试拿不到offer!

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1.调用retrieveServiceLocked方法,返回ServiceLoopupResult对象。

该方法会检查是否有与要启动Service对应的ServiceRecord对象,ServiceRecord用于描述一个Service。若没有则会调用PMS获取要启动的Service的信息,并封装到ServiceRecord对象中,最后将ServiceRecord对象封装成ServiceLoopupResult对象。

2.调用ServiceLookupResult对象的成员变量record获取ServiceRecord对象。

3.调用startServiceInnerLocked方法,传入ServiceRecord对象作为参数。

startServiceInnerLocked方法的执行过程:

调用bringUpServiceLocked方法。

bringUpServiceLocked方法的执行过程:

1.调用ServiceRecord对象的成员变量processName获取Service想要运行的进程。

默认为当前进程,可以在AndroidManifest中设置android:process属性指定一个新进程。

2.调用getProcessRecordLocked方法,传入processName和Service的uid作为参数,获取ProcessRecord对象。

3.若ProcessRecord对象不为null,即Service运行的进程存在,则调用realStartServiceLocked方法启动Service。

4.若ProcessReocrd对象为null,即Service运行的进程不存在,则调用AMS对象的startProcessLocked方法启动Service的应用程序进程。

realStartServiceLocked方法的执行过程:

1.调用ProcessRecord对象的成员变量thread获取ApplicationThread对象。

2.调用ApplicationThread对象的scheduleCreateService方法。

ActivityThread.java中scheduleCreateService方法的执行过程:

1.创建CreateServiceData对象,并将Service的启动参数封装到其中。

2.调用sendMessage方法,向H类发送类型为CREATE_SERVICE的消息,并将CreateServiceData对象传递过去。

sendMessage方法内部调用H对象的sendMessage方法,最终在ActivityThread.java中H类的handleMessage方法中处理。

handleMessage方法的执行过程:

调用handleCreateMessage方法。

ActivityThread.java中handleCreateService方法的执行过程:

1.调用getPackageInfoNoCheck方法获取要启动Service的应用程序的LoadedApk对象。

2.调用LoadedApk对象的getClassLoader方法获取类加载器ClassLoader对象。

3.调用ClassLoader对象的loadClass方法获取Class对象,调用Class对象的newInstance方法获取Service对象。

4.调用ContextImpl的createAppContext方法,创建Service的上下文环境ContextImpl对象。

5.调用Service对象的attach方法初始化Service。

6.调用Service对象的onCreate方法。

7.将Service对象保存到ActivityThread中名为mServices的ArrayMap中。

Service的绑定过程

==============================================================================

在这里插入图片描述

一.ContextImpl调用AMS


要绑定Service,需要调用bindService方法,该方法在ContextWrapper.java中实现。

ContextWrapper.java中bindSevice方法的执行过程:

调用Context对象的bindService方法。

该Context对象为启动ActivityThread时调用createBaseContextForActivity方法返回的ContextImpl对象。

ContextImpl,java中bindService的执行过程:

调用bindServiceCommon方法。

bindServiceCommon方法的执行过程:

1.调用LoadedApk对象的getServiceDispatcher方法,传入ServiceConnection对象作为参数,返回IServiceConnection对象

该方法使Service的绑定支持跨进程。

2.调用ActivityManager的getService方法获取AMS的代理IActivityManager对象。

3.调用AMS对象的bindService方法。

二.AMS绑定Service


ActivityManagerService.java中bindService方法的执行过程:

调用ActiveServices对象的bindServiceLocked方法。

ActiveServices.java中bindServiceLocked方法执行过程:

1.调用ServiceRecord对象的retrieveAppBindingLocked方法获取AppBindRecord对象。

应用程序进程通过Intent绑定Service时,会通过AppBindRecord来维护Service和应用程序进程的关联

1).创建IntentBindRecord对象。

IntentBindRecord用于描述绑定Service的Intent,AMS会为每个绑定Service的Intent分配一个IntentBindRecord对象。IntentBindRecord内部有一个类型为ArrayMap<ProcessRecord,AppBindRecord>的对象,用来记录使用当前Intent对象绑定Service的应用程序进程。

2).根据IntentBindRecord对象中保存的ProcessRecord对象获取AppBindRecord对象。

3).若AppBindRecord对象为null,则创建AppBindRecord对象。

2.调用bringUpServiceLocked方法启动Service。

3.若Service已经从运行,并且当前应用程序进程已经接收到绑定Service时返回的Binder对象,则调用IServiceConnection对象的connected方法。

4.若当前应用程序绑定过Service,则调用requestServiceBindingLocked方法,其中boolean类型的参数rebind为true。

5.若当前应用程序没有绑定过Service,则调用requestServiceBindingLocked方法,其中boolean类型的参数rebind为false。

requesServiceBindingLocked方法的执行过程:

1.调用ServiceRecord对象的成员变量app获取ProcessRecord对象。

2.调用ProcessRecord对象的成员变量thread获取ApplicationThread对象。

3.调用ApplicationThread对象的scheduleBindService方法。

ActivityThread.java中scheduleBindService方法的执行过程:

1.创建BindServiceData对象,并把Service的信息封装到其中。

2.调用sendMessage方法,向H类发送类型为BIND_SERVICE的消息,并将BindServiceData对象传递过去。

sendMessage方法内部调用H对象的sendMessage方法,最终在ActivityThread.java中H类的handleMessage方法中处理。

handleMessage方法的执行过程:

调用handleBindMessage方法。

ActivityThread.java中handleBindMessage方法的执行过程:

1.调用ActiveServices对象的get方法获取Service对象。

2.若是第一次绑定,即rebind为false。

1).调用Service对象的onBind方法,获取IBinder对象。

2).调用ActivityManager的getService方法获取AMS的代理IActivityManager对象。

3).调用AMS对象的publishService方法,回调通知Service,并将IBinder对象传递回去。

3.若不是第一次绑定,即rebind为true,则调用ServiceConnection对象的onRebind方法。

三.AMS回调ServiceConnection


ActivityManagerService.java中publishService方法的执行过程:

调用ActiveServices对象的publishServiceLocked方法。

ActiveServices.java中publishServiceLocked方法的执行过程:

调用IServiceConnection对象的connected方法。

IServiceConnection是ServiceConnection在本地的代理,用于解决Service跨进程通信问题,具体实现为ServiceDispatcher.InnerConnection。ServiceDispatcher是LoadedApk的内部类。

LoadedApk.java中InnerConnection类connected方法的执行过程:

最后

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。

所以,长征路还长,大家还是好好地做个务实的程序员吧。

最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

好好地做个务实的程序员吧。

最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

http://www.ds6.com.cn/news/98602.html

相关文章:

  • 小白如何做电商seo优化按天扣费
  • 黑苹果做网站开发seo自学
  • 网站的上一页怎么做的宜昌网站建设公司
  • 广州天河建网站东营百度推广电话
  • 做网站需要什么许可证免费外国网站浏览器
  • 网站站外推广的内外链接怎么做互联网公司网站模板
  • 搭建微网站平台网络舆情优化公司
  • 400网站建设最新时事热点
  • 东莞市网站建设系统企业怎么把抖音关键词做上去
  • java做网站快不快百度公司推广电话
  • 自己做网站需要收费吗杭州seo专员
  • angular做门户网站西安seo外包行者seo06
  • app开发导入网站模板广西网站建设
  • 行业网站渠道选择和内容运营做网站的外包公司
  • 网站建设岗位需要解决的问题最新足球消息
  • 专业的营销型网站培训中心宣传营销方式有哪些
  • 网站开发专业是干嘛的网络营销的重要性与意义
  • 专业做网站 上海俄罗斯搜索引擎推广
  • 网站定制营销的过程安卓系统优化大师
  • 基于wamp的动态网站开发网站seo在线优化
  • 告别厅北京告别厅太原网站优化公司
  • 找钢网网站建设品牌营销推广策划公司
  • wordpress自动提交关键词排名优化如何
  • 小企业网站建设在哪里全球搜索
  • 网站全局搜索如何做创建网站免费
  • 网站建设中心怎么做网上交易平台
  • 广东微信网站开发哪家好百度竞价优缺点
  • 深圳网站建设短视频营销案例
  • 织梦怎么更新网站html天津网络推广seo
  • 优设网站网站关键词优化方法