Android复习
景兄弟1366
王侯将相,宁有种乎!苍天弃吾,吾宁成魔!
展开
-
serializable和parcelable的区别
Serializable (Java自带):Serializable是序列化的意思,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。Parcelable (android专用):除了Serializable之外,使用Parcelable也可以实现相同的效果,不过不同于将对象进行序列化,Parcelable方式的实现原理是将一个完整的对象进行分解,而分解后的每一部分都是lntent所支持的数据类型,这样也就实现传递对象的功能了。选择序列化方法原创 2021-07-09 09:00:58 · 619 阅读 · 1 评论 -
onTrimMemory的使用
能让activity得到内存情况的通知.@Overridepublic void onTrimMemory(int level) { super.onTrimMemory(level); switch (level) { case TRIM_MEMORY_UI_HIDDEN: //进行资源释放操作 break; }}运行时的回调TRIM MEMORY_RUNNING_MODERATE奏示应用程序正常运行,并.原创 2021-07-09 08:41:17 · 761 阅读 · 0 评论 -
listview和recyclerview的区别
ListView:只能在垂直方向滑动。RecyclerView:支持水平方向滑动,垂直方向滑动,多行多列瀑布流的方式等。ListView:有几个默认的Adapter,分别是ArrayAdapter、CursorAdapter和SimpleCursorAdapter。RecyclerView: Adapter需要自己实现。ListView:拥有子ltem的监听函数:AdapterView.OnltemClickListener。RecyclerView:需要自己实现接口,来实现子ltem的点击原创 2021-07-09 08:36:17 · 716 阅读 · 0 评论 -
Android内存管理机制
1.查看android low memory killer的内存阈值: cat/sys/module/lowmemorykiller/parameters/minfree 阈值的单位是4KB,也就是一页,换算成兆就是 阈值*4/1024六个值分别对应 前台进程 ,可见进程,服务进程,后台进程,contentProvider,空进程的杀进程的最低内存量判断进程的优先级 :通过oom_adj值: cat /proc/pid(具体的进程id值)/oom_adj...原创 2021-07-08 22:37:43 · 208 阅读 · 1 评论 -
简单实用的微信缓存框架mmkv
MMKV 是微信于 2018 年 9 月 20 日开源的一个 K-V 存储库,它与 SharedPreferences 相似,但又在更高的效率下解决了其不支持跨进程读写等弊 端。1.build.gradle implementation 'com.tencent:mmkv-static:1.2.9'2.application初始化 String path = MMKV.initialize(this);//会返回MMVK存储的目录(String)3.获取mmkv对象 MMK原创 2021-07-01 21:55:02 · 782 阅读 · 0 评论 -
Android View事件分发机制理解
为了很好的理解事件分发机制,我们用一个自定义的RelativeLayout,里面装一个自定义的Button,然后分别MyRelativelayout重写里面的dispatchTouchEvent、onInterceptTouchEvent以及onTouchEvent方法,重写MyButton的onTouchEvent以及dispatchTouchEvent。(这里说明一下,因为RelativeLayout是继承ViewGroup的,所以它有拦截机制(onInterceptTouchEvent),但But..原创 2021-04-05 11:03:45 · 150 阅读 · 0 评论 -
EventBus总结
eventBus四种线程模型:POSTING (默认) 表示事件处理函数的线程跟发布事件的线程在同一个线程。 MAIN 表示事件处理函数的线程在主线程(UI)线程,因此在这里不能进行耗时操作。 BACKGROUND 表示事件处理函数的线程在后台线程,因此不能进行UI操作。如果发布事件的线程是主线程(UI线程),那么事件处理函数将会开启一个后台线程,如果果发布事件的线程是在后台线程,那么事件处理函数就使用该线程。 ASYNC 表示无论事件发布的线程是哪一个,事件处理函数始终会新建一个子线程运行,同样原创 2021-03-31 10:59:50 · 156 阅读 · 0 评论 -
一个启动模式为singleTop的activity,如果再次启动会发生什么? 面试官想问的是 onNewIntent()
Activity有一个 onNewIntent(Intent intent)回调方法,该方法我们几乎很少使用,导致已经将其忽略掉。该方法的官方解释如下:This is called for activities that set launchMode to "singleTop" in their package, or if a client used the Intent.FLAG_ACTIVITY_SINGLE_TOP flag when calling startActivity. In eit原创 2021-03-16 10:31:52 · 590 阅读 · 0 评论 -
2021Android复习找工作进大厂冲冲冲------开篇
又到了金三银四,我也准备结束深漂之旅,准备回老家啦,在外漂泊了五年,有点想念家的味道。接下来我会写一系列的文章来分享我复习,面试,找工作的整个流程,也希望一起奋斗的小伙伴能早日投进大厂的怀抱! 首先,我列了一个即将要复习的大纲,虽然还不完善,但是我会逐步补充上来,根据这个大纲来进行知识点重难点的复习,简单的过一遍就好,遇到不会的就深入研究一下! Android复习大纲一. Android基础1. 四大组件(Activity,Service...原创 2021-02-26 23:30:42 · 122 阅读 · 0 评论 -
git的使用以及经验总结
1.cd /project git init2.git status3.git add .4.git commit5.git remote add origin https://github.com/XXX/xxx6.git push -u origin master(第二次使用可用 git push origin master)中间遇到问题提交不上,可先git pull --rebase or...原创 2018-04-12 20:37:51 · 128 阅读 · 0 评论 -
Android Q网络状态判断,亲测可用
package com.example.androidinterviewjxd.utils;import android.content.Context;import android.net.ConnectivityManager;import android.net.Network;import android.net.NetworkCapabilities;public class NetworkUtils { /** * 判断当前网络是否连接 * @para.原创 2020-09-20 13:12:51 · 756 阅读 · 0 评论 -
TCL安卓开发面试题
今天终于拿到了老东家的离职证明,刚刚总结完字节的面试经验,想着之前去TCL电子大厦面试的经验还没总结,还好当时面试完成后,在地铁上,回忆了一下内容放到了手机的备忘录中,现在拿出来总结到下面:按键事件分发机制 view的绘制流程 如何设计一个中大型的app 开源框架的技术选型 安卓编解码 播放器的状态 http,https tcp三次握手,四次挥手 内存抖动产生的原理和优化 内存泄露的定位和优化 性能优化 最近的学习计划 最新的安卓版本是多少?...原创 2020-09-16 18:28:09 · 640 阅读 · 2 评论 -
字节跳动安卓开发面筋总结
有幸接收到了字节跳动的面试机会,但是感觉自己还是基础不够牢固,回答得不是很好,但面试官非常好,不懂的地方,面试官会友善地给一些提示,如果还是不会就接着问下一个问题了。 字节的面筋大概分为以下几种类型提问: 1.过往项目经验 2.项目中遇到的重点和难点讲一下 3.java基础面试题 4.安卓基础面试题 5.算法下面是我回忆的一些面试题,总结如下: java基础面试题:1.类的加载机制描述一下 2.wait和...原创 2020-09-16 18:22:12 · 198 阅读 · 0 评论 -
OkHttp: <-- HTTP FAILED: java.net.UnknownServiceException: CLEARTEXT communication to
D/OkHttp: <-- HTTP FAILED: java.net.UnknownServiceException: CLEARTEXT communication to japi.juhe.cn not permitted by network security policy为保证用户数据和设备的安全,Google针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 And.原创 2020-09-07 22:03:51 · 1022 阅读 · 0 评论 -
如何在Android使用Protobuf
protobuf是一种占用空间小,解析速度快的数据通信协议,相对xml和json而言,更适合网络传输。但传输是二进制,生成的文件可读性差,不过也相对安全,因为不配合对应的类格式,是不知道内容的。 下面讲一下如何在Android使用protobuf: 首先是根目录下的build.gradle:// Top-level build file where you can add configuration options common to all sub-projects/mo...原创 2020-09-05 23:52:42 · 1875 阅读 · 0 评论 -
Java线程同步之wait和notify的理解
首先我们新建两个线程,然后在两个线程里面指定其中一个线程操作完一个数据后,另一个线程才能进行下一步,比如线程4先执行 startThread4 111 、startThread4 222后进入等待状态,此时线程5进入后开始执行startThread5 111,执行完成之后此时唤醒了线程4里面的wait,从而又转去执行线程4的startThread4 333,最后执行线程5 的startThread5 222.这个例子蕴含了一个知识点,就是多线程的数据同步,使用synchroized 和对象wait以及.原创 2020-08-31 22:26:47 · 293 阅读 · 0 评论 -
步步高面试真题
步步高面试真题:假设有一个A界面,通过A在同一个栈里面启动了B界面,在B界面点击返回键,返回到A,此时从点击返回键开始,A和B分别经历了哪一些生命周期,按顺序说出来? 讲一下handler,looper,messageQueue他们三者之间的消息? 消息机制里面通过message.obtain去获取message的实例,为什么这么设计? Handler里面有一个特殊的handler,叫IdleHandler,有接触过嘛? 子线程中new hander sendmessage中发生了什么? 讲.原创 2020-08-27 20:57:58 · 643 阅读 · 1 评论 -
吐血整理,看完可达年薪百万,高级Android工程师必备知识点
Java部分Java基础1. java中==和equals和hashCode的区别基本数据类型的比较用 ,这样是比较它们的值。引用类型(类,接口,数组)的比较,如果是,那么比较的是它们的内存地址,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。看一下源码大家都会明白,对于-128到127之间的数,会进行缓存,Integer b1 = 127时,会将...原创 2019-12-29 23:19:39 · 1850 阅读 · 1 评论 -
Android高级进阶之多线程(一)handler+Thread
本文主要实现了handler+Thread通信的方式,实现了多线程之间的通信,期间为了避免内存泄漏,在ondestory方法中对线程中的方法进行了终止了处理。然后对直接new Handler会出现This Handler should be static or leaks might occor的警告信息进行了处理,采用静态内部类+弱引用的方式进行了改进。实现如下:package com...原创 2019-11-24 11:49:14 · 524 阅读 · 0 评论 -
Android触摸事件传递机制
1.触摸事件的类型 触摸事件对应MotionEvent类,事件的类型主要有如下三种: 1.1 ACTION_DOWN: 用户手指按下操作,标志着一次触摸事件的开始。1.2 ACTION_MOVE: 用户手指按压屏幕后,在松开之前,如果移动的距离超过一定的阈值,那么就会判定为移动事件。我们手指的轻微移动,就会触发一系列的移动事件。 ...原创 2019-11-16 11:24:41 · 335 阅读 · 0 评论