Nixo Home

Nixo Home

抚子大爱w

小逝
小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 小逝 ...
养老App问题汇总
日期 3号->11号 (12号自测) UI界面问题 指示器(换一个框架,能自定义下划线的) 退出登录(放在设置里) 发现那些一个图片的时候换个控件(要能设置缩放type) 社团暂无内容要below全部社团 获取定位Dialog重构一些界面 一些状态栏 创建社团界面优化 缺少的模块 搜索(界面,接口) 创建活动(界面) 社团历史动态(接口) 现发现的Bug 设置兴趣标签(ArrayList转Json字符串出错)
Nixo浅谈设计模式
前言 在我眼里设计模式是对代码的一种高度封装,让代码从幼虫变为茧的过程,在Android开发中,有很多框架的设计模式都是非常优雅高效的,例如Retrofit2中使用了代理模式,适配器模式,构造者模式将框架设计的非常完美且扩展性Nice,再例如RxJava使用的观察者模式将我们的异步开发可以像同步开发一样流式使用,这都是设计模式的资深使用,如上的那些框架并不是个人开发的,是多个工程师一起设计,一起合作打造,而在我们这些小生眼里,去理解都要抽丝剥茧的去学习,去挖掘,回首运用在自己的项目当中,这也是我们学习框架的一个主要目的,那就是学习他们的设计理念,设计模式。 设计模式有无好坏之分 首先同...
[Untitled Post]
title:为什么Android主线程的looper.loop不会导致循环卡死Looper与Hnadler其实是通过CS模式由Binder进行通讯的 只有主线程发送给Handler让Looper循环的消息中进行了耗时操作才会导致ANR,而Looper中不会,因为Looper在没有消息时会将线程睡眠。 Looper并不是运行在主线程里的,他是运行在binder线程中,在ActivityThread的main()方法中创建好Looper和ActivityThread后通过thread.attach方法传递false创建了一个新的binder线程,在调用Looper.loop开启循环 H...
[Untitled Post]
title WebView面试详解介绍AsyncTask内部是由handler+线程池实现的 ##优点 由于AsyncTask内部提供了线程池,就会对我们的线程有一个很好地管理和控制,也能减少对于反复创建销毁线程的不必要的开销 内部代码介绍 asyncTask是个抽象类,需要子类继承 onPreExecute() - 主线程执行的,是在任务执行前运行的可以做一些数据初始化操作 doInBackground() - 子线程运行的,可以进行耗时操作 onProgressUpdata() -主线程运行,在publishProgress()调用之后执行更新进度 onPostExecute(...
[Untitled Post]
title WebView面试详解#WebView常见的坑 在API16之前,会出现远程代码执行安全漏洞问题,因为该应用没有正确限制使用addJavaScripInterface方法导致远程攻击者可以使用Java反射任意调用java方法 -webview写在其他容器中时,销毁时需要将webview remove掉,然后释放资源,才能将webview真正的释放掉,不然会导致内存泄漏-WebViewClient.onPageFinished()在web跳转时可能会被调用无数次,所以推荐使用WebChromeClient.onProgressChanged-后台耗电 webview会自己...
[Untitled Post]
title AIDLAIDL 进程间通讯(IPC)机制 通过编写aidl文件 在通过IDE自动生成AIDL文件,来实现客户端与服务端通讯 #使用 在main中创建aidl文件夹 在aidl文件夹中创建对象实体类,在创建对象映射类aidl文件(包名要一致) make工程就生成了binder的java文件 服务端 新建servce 创建生成的binder对象实例 定义方法,在binder中返回 客户端 实现ServceConnection接口拿到AIDL类 通过BindServce绑定服务 调用AIDL类中定义好的方法去进行操作请求
Parcelable和Serializable的差异
什么是序列化 由于存在内存中的对象都是短暂的,为了把对象的状态保存下来,就需要把对象写到磁盘或者其他介质中 序列化: 内存对象->磁盘或其他介质 反序列化:磁盘或其他介质->内存对象在Android中 一个对象要序列化就要实现Parcelable接口或者Serializable接口 回答从两方面回答 效率和实现 Serializable 实现接口即可,编译期会生成一个Long型的序列化UID(作用是反序列化时判断UID是否相同,相同才能反序列化)优点:实现简单 缺点:开销大 Parcelable 适用麻烦,需要实现writeParcel 将对象映射成parcel对象,然...
BindServce和StartServce调用顺序
bindServce使用创建好Servce之后,去实现onBind()方法,返回当前的Servce实例然后创建Connection,去实现ServceConnection接口,然后重写ServceConnected与onServceDisConnected来实现Servce的引用然后调用bindServce来绑定Servce服务 先绑定服务,后启动服务Servce先是会绑定服务,启动服务后,就会解除绑定的服务,变为startServce的状态,变得不可控 先启动服务,后绑定服务先startServce在bindServce,这个服务并不会从启动服务变为绑定服务状态,虽然会绑定Activi...
avatar
Nixo
witness me
FRIENDS