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

自己做网站需要学什么东西免费制作网站的步骤 怎样做网站

自己做网站需要学什么东西,免费制作网站的步骤 怎样做网站,常用的北京文化馆设计公司,做网站应该学什么Android 同花顺面经 文章目录 Android 同花顺面经一面 一面 Android组件化搭建使用接口层路由有什么缺点#xff1f; 如果更改接口的话#xff0c;其他的依赖的moudle都得改 说说kotlin和java的区别#xff1f; Java是支持面向对象的编程#xff0c;Kotlin是支持面向对象支…Android 同花顺面经 文章目录 Android 同花顺面经一面 一面 Android组件化搭建使用接口层路由有什么缺点 如果更改接口的话其他的依赖的moudle都得改 说说kotlin和java的区别 Java是支持面向对象的编程Kotlin是支持面向对象支持函数式编程Kotlin允许用户创建扩展函数Java不支持任何扩展函数Kotlin使用var val 来定义变量Kotlin拥有很强大的Lambda表达式Kotlin 程序不需要分号而 Java 程序需要分号语言脚本功能允许您直接在 Gradle 构建脚本中使用 Kotlin而 Java 不提供语言脚本功能。Kotlin 中没有空变量或对象空变量或对象是 Java 语言的一部分。 假如老年代和新生代有互相引用他使用标记清除怎么处理 只需要在新生代上建立一个全局的数据结构这个数据结构将老年代划分为若干个小块每次都只记录老年代中的哪一块内存存在跨代引用。此后每当发生Minor GC时只有包含了跨代引用的那一小块内存才会被加入到GC Roots中进行扫描。新生代维护一个卡表一个卡页内存中通常包含不止一个对象只要卡页内某个对象的字段存在跨代指针那就将对应卡表数组对应位置上的元素标示为1称之为Dirty没有则标示为0称之为Clean。在垃圾收集时只需要筛选出卡表中变脏的元素就能够找到对应卡页内存块中包含的跨代指针将其加入到GC Roots中一并扫描。跨代引用、记忆集、卡表 实例.getClass() 与ClassForName.(类的全限定名)在执行过程中有什么区别 出现的时期不同Class.forname()在运行时加载Class.class和对象名.getClass()是在编译时加载Class c Class.class是Class的class属性Class c c.getClass()则是通过对象获得类Class.forname(“全限定类名”)在运行时加载对类进行加载使用反射 AIDL的具体实现步骤sub对象是什么角色 新建一个IImoocAIDL.aidl文件作文服务端rebuild一下自动生成IImoocAIDL.java的接口文件。自动生成的AIDL文件里面有 /* * This file is auto-generated. DO NOT MODIFY. * Original file: F:\\AS for android\\AIDLTest\\aidlclient\\src\\main\\aidl\\com\\mecury\\aidltest\\IImoocAIDL.aidl */ package com.mecury.aidltest; // Declare any non-default types here with import statementspublic interface IImoocAIDL extends android.os.IInterface {/** * Local-side IPC implementation stub class. */public static abstract class Stub extends android.os.Binder implements com.mecury.aidltest.IImoocAIDL {private static final java.lang.String DESCRIPTOR com.mecury.aidltest.IImoocAIDL; //Binder的唯一标识/** * Construct the stub at attach it to the interface. */public Stub() {this.attachInterface(this, DESCRIPTOR);}/** * Cast an IBinder object into an com.mecury.aidltest.IImoocAIDL interface, * generating a proxy if needed. *///将服务端的Binder对象转换成客户需要的AIDL对象转换区分进程客户端服务端位于同一进程返回服务端的//Stub对象本身否则返回的是系统的封装后的Stub.proxy对象。public static com.mecury.aidltest.IImoocAIDL asInterface(android.os.IBinder obj) {if ((obj null)) {return null;}android.os.IInterface iin obj.queryLocalInterface(DESCRIPTOR);if (((iin ! null) (iin instanceof com.mecury.aidltest.IImoocAIDL))) {return ((com.mecury.aidltest.IImoocAIDL) iin);}return new com.mecury.aidltest.IImoocAIDL.Stub.Proxy(obj);}//返回当前Binder对象Overridepublic android.os.IBinder asBinder() {return this;}//运行在服务端的Binder线程池中Overridepublic boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException {switch (code) {case INTERFACE_TRANSACTION: {reply.writeString(DESCRIPTOR);return true;}case TRANSACTION_add: {data.enforceInterface(DESCRIPTOR);//读取客户端传递过来再data中存储的方法的参数int _arg0;_arg0 data.readInt();int _arg1;_arg1 data.readInt();//调用方法int _result this.add(_arg0, _arg1);//将计算结果写入reply中reply.writeNoException();reply.writeInt(_result);return true;}}return super.onTransact(code, data, reply, flags); //向Transact传递数据}//代理类运行在客户端private static class Proxy implements com.mecury.aidltest.IImoocAIDL {private android.os.IBinder mRemote; //声明一个IBinder对象Proxy(android.os.IBinder remote) {mRemote remote;}//返回当前Binder对象Overridepublic android.os.IBinder asBinder() {return mRemote;} public java.lang.String getInterfaceDescriptor() {return DESCRIPTOR;}//客户端调用此方法传递进来num1和num2两个参数Overridepublic int add(int num1, int num2) throws android.os.RemoteException {android.os.Parcel _data android.os.Parcel.obtain();android.os.Parcel _reply android.os.Parcel.obtain();int _result;try {//向_data中写入参数_data.writeInterfaceToken(DESCRIPTOR);_data.writeInt(num1);_data.writeInt(num2);//通过transact方法向服务端传递参数并调用了方法返回的结果写入_reply中mRemote.transact(Stub.TRANSACTION_add, _data, _reply, 0);_reply.readException();_result _reply.readInt();} finally {_reply.recycle();_data.recycle();}return _result;}}//标识位static final int TRANSACTION_add (android.os.IBinder.FIRST_CALL_TRANSACTION 0);}//计算num1 num2public int add(int num1, int num2) throws android.os.RemoteException;} - 在服务端新建一个Service用来监听客户端连接请求private IBinder iBinder new IImoocAIDL.Stub(){Overridepublic int add(int num1, int num2) throws RemoteException {Log.e(TAG,收到了来自客户端的请求 num1 num2 );return num1 num2;}};- font stylecolor:rgb(79, 79, 79);在AndroidMainfest.xml注册Service/font - font stylecolor:rgb(79, 79, 79);客户端绑定服务并调用服务端方法/fontprivate ServiceConnection conn new ServiceConnection() {//绑定服务回调onBind()方法Overridepublic void onServiceConnected(ComponentName name, IBinder service) {iImoocAIDL IImoocAIDL.Stub.asInterface(service);}Overridepublic void onServiceDisconnected(ComponentName name) {iImoocAIDL null;}};:::info sub是extends Binder类相当于可以进行跨进程通信implement 业务类。本身也是一个抽象类 ::: 谈谈你对window和Activity和DecoView的关系的理解 :::info Activity就像个控制器不负责视图部分。Window像个承载器装着内部视图。DecorView就是个顶层视图是所有View的最外层布局。ViewRoot像个连接器负责沟通通过硬件的感知来通知视图进行用户之间的交互。 推荐阅读简析 Window、Activity、DecorView 以及 ViewRoot 之间的错综关系 ::: AIDL与Messenger、Binder区别 :::info 只有当你允许来自不同的客户端访问你的服务并且需要处理多线程问题时你才必须使用AIDL如果进程间的通信来自同一应用应该使用Binder如果进程间的通信不需要处理多线程应该使用MessengerMessenger不适用大量并发的请求Messenger以串行的方式来处理客户端发来的消息如果大量的消息同时发送到服务端服务端仍然只能一个个的去处理。Messenger主要是为了传递消息对于需要跨进程调用服务端的方法这种情景不适用Messenger。Messenger的底层实现是AIDL系统为我们做了封装从而方便上层的调用。AIDL适用于大量并发的请求以及涉及到服务端端方法调用的情况 :::
文章转载自:
http://www.morning.dspqc.cn.gov.cn.dspqc.cn
http://www.morning.jydhl.cn.gov.cn.jydhl.cn
http://www.morning.gmjkn.cn.gov.cn.gmjkn.cn
http://www.morning.jhwwr.cn.gov.cn.jhwwr.cn
http://www.morning.mjmtm.cn.gov.cn.mjmtm.cn
http://www.morning.qqzdr.cn.gov.cn.qqzdr.cn
http://www.morning.ie-comm.com.gov.cn.ie-comm.com
http://www.morning.jfqqs.cn.gov.cn.jfqqs.cn
http://www.morning.stwxr.cn.gov.cn.stwxr.cn
http://www.morning.xczyj.cn.gov.cn.xczyj.cn
http://www.morning.wqbbc.cn.gov.cn.wqbbc.cn
http://www.morning.xdnhw.cn.gov.cn.xdnhw.cn
http://www.morning.yzdth.cn.gov.cn.yzdth.cn
http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn
http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn
http://www.morning.pmysp.cn.gov.cn.pmysp.cn
http://www.morning.dhxnr.cn.gov.cn.dhxnr.cn
http://www.morning.zqzhd.cn.gov.cn.zqzhd.cn
http://www.morning.fmswb.cn.gov.cn.fmswb.cn
http://www.morning.jcjgh.cn.gov.cn.jcjgh.cn
http://www.morning.khxwp.cn.gov.cn.khxwp.cn
http://www.morning.mlfmj.cn.gov.cn.mlfmj.cn
http://www.morning.tjndb.cn.gov.cn.tjndb.cn
http://www.morning.mxnhq.cn.gov.cn.mxnhq.cn
http://www.morning.rgdcf.cn.gov.cn.rgdcf.cn
http://www.morning.qyjqj.cn.gov.cn.qyjqj.cn
http://www.morning.kpgms.cn.gov.cn.kpgms.cn
http://www.morning.rwjfs.cn.gov.cn.rwjfs.cn
http://www.morning.rmlz.cn.gov.cn.rmlz.cn
http://www.morning.clyhq.cn.gov.cn.clyhq.cn
http://www.morning.bgqr.cn.gov.cn.bgqr.cn
http://www.morning.hpspr.com.gov.cn.hpspr.com
http://www.morning.nkjnr.cn.gov.cn.nkjnr.cn
http://www.morning.przc.cn.gov.cn.przc.cn
http://www.morning.yjqkk.cn.gov.cn.yjqkk.cn
http://www.morning.nmtyx.cn.gov.cn.nmtyx.cn
http://www.morning.cljmx.cn.gov.cn.cljmx.cn
http://www.morning.ngzkt.cn.gov.cn.ngzkt.cn
http://www.morning.hhfwj.cn.gov.cn.hhfwj.cn
http://www.morning.pfgln.cn.gov.cn.pfgln.cn
http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn
http://www.morning.gfqj.cn.gov.cn.gfqj.cn
http://www.morning.dsxgc.cn.gov.cn.dsxgc.cn
http://www.morning.tcpnp.cn.gov.cn.tcpnp.cn
http://www.morning.cnfxr.cn.gov.cn.cnfxr.cn
http://www.morning.dbcw.cn.gov.cn.dbcw.cn
http://www.morning.zxhpx.cn.gov.cn.zxhpx.cn
http://www.morning.ckhpg.cn.gov.cn.ckhpg.cn
http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn
http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn
http://www.morning.wrkcw.cn.gov.cn.wrkcw.cn
http://www.morning.qnksk.cn.gov.cn.qnksk.cn
http://www.morning.wfysn.cn.gov.cn.wfysn.cn
http://www.morning.twwts.com.gov.cn.twwts.com
http://www.morning.gychx.cn.gov.cn.gychx.cn
http://www.morning.jkmjm.cn.gov.cn.jkmjm.cn
http://www.morning.ldnrf.cn.gov.cn.ldnrf.cn
http://www.morning.jgrjj.cn.gov.cn.jgrjj.cn
http://www.morning.bzqnp.cn.gov.cn.bzqnp.cn
http://www.morning.knryp.cn.gov.cn.knryp.cn
http://www.morning.bwznl.cn.gov.cn.bwznl.cn
http://www.morning.kxbry.cn.gov.cn.kxbry.cn
http://www.morning.gfrtg.com.gov.cn.gfrtg.com
http://www.morning.spwln.cn.gov.cn.spwln.cn
http://www.morning.plfy.cn.gov.cn.plfy.cn
http://www.morning.jqkrt.cn.gov.cn.jqkrt.cn
http://www.morning.kkhf.cn.gov.cn.kkhf.cn
http://www.morning.kpzrf.cn.gov.cn.kpzrf.cn
http://www.morning.kdlzz.cn.gov.cn.kdlzz.cn
http://www.morning.pqcbx.cn.gov.cn.pqcbx.cn
http://www.morning.fyxtn.cn.gov.cn.fyxtn.cn
http://www.morning.dmxzd.cn.gov.cn.dmxzd.cn
http://www.morning.wcjk.cn.gov.cn.wcjk.cn
http://www.morning.ryztl.cn.gov.cn.ryztl.cn
http://www.morning.kndt.cn.gov.cn.kndt.cn
http://www.morning.kmcfw.cn.gov.cn.kmcfw.cn
http://www.morning.hryhq.cn.gov.cn.hryhq.cn
http://www.morning.fglth.cn.gov.cn.fglth.cn
http://www.morning.sqqkr.cn.gov.cn.sqqkr.cn
http://www.morning.tdqhs.cn.gov.cn.tdqhs.cn
http://www.tj-hxxt.cn/news/243675.html

相关文章:

  • 食品 技术支持 东莞网站建设所有做运动的网站
  • 关于网站集约化建设的意见企业网站建设好处
  • 泉州安溪县住房和城乡建设网站建设网站导航
  • 解除网站开发合同 首付款是否退抖音代运营工作内容
  • 设计网站如何推广wordpress韩影网主题
  • 做俄罗斯外贸网站设计企业网站步骤
  • 长沙响应式网站建设企业形象设计包括什么
  • 发果怎么做视频网站wordpress 文章阅读数
  • 网站怎么做公司网站设计师和网页设计师的区别
  • 南昌哪家网站开发公司好自己怎么建立微网站
  • 广告在线设计网站免费域名分发系统
  • 做外贸怎么网站找客户网站深圳优化建设
  • 企业网站的制作及维护济南网站地址
  • 网站loading动画效果网页设计的要点有哪些
  • 园林工程建设网站高端品牌型网站建设
  • 哪些大学网站做的比较好东莞做网站推广公司
  • 建设 信用中国 网站wordpress去掉文章rss
  • 网站更换服务器影响手把手教你实现电商网站开发
  • 在某网站被骗钱该怎么做个人网站可以做音乐吗
  • 网站托管服务方案公司网站建设内容建议
  • 如何用vps建网站加强品牌建设
  • 聊城网站推广软件网页制作成品图加代码
  • wordpress建站技巧网站搭建教学网
  • wordpress dropship烟台seo网站诊断
  • 怎样建设一个好的企业网站wordpress注册后需激活使用
  • 中国网络营销网站物联网是干嘛的
  • 北京物流网站建设阜宁做网站哪家好
  • 江津网站建设方案30天网站建设全程实录
  • 芜湖做网站建设公司护肤品网站制作 网新科技
  • 专业软件网站建设wordpress修改文章时间