之前移动互联网兴起的时候,很多公司都创建了开发团队,做移动app,但是随着移动互联网逐步进入稳定期,很多移动项目盈利不是很理想,所以为了节省成本,很多公司现在开始招跨平台开发...

之前移动互联网兴起的时候,很多公司都创建了开发团队,做移动app,但是随着移动互联网逐步进入稳定期,很多移动项目盈利不是很理想,所以为了节省成本,很多公司现在开始招跨平台开发...
在我们的日常工作中经常会碰到一些比较奇怪的问题,来来回回找不到解决问题的方向,这个时候该反省一下自己解决问题的思路是不是正确的,因为我们只有在方向正确的前提下,努力才会有效果...
一般来说,Handler是Android 消息机制的上层接口,我们经常用Handler来处理页面上的一些交互,主要包括耗时操作完以后,需要在UI层面上进行调整。这里我们就讲一...
我们面试中进程会碰到这样的面试题,那么他们的区别到底有哪些呢,这里做一个总结。共同点:都能够使线程处于一个等待的状态不同点: sleep()是Thread类的静态方法,可以在...
先回忆一下我们的一些算法以及他们之间的特点。 算法时间复杂度原地排序是否稳定冒泡排序O(n^2)是是选择排序O(n^2)是否插入排序O(n^2)是是快速排序O(n*logn)...
Kotlin作为Android开发的首选语言,我们在使用的时候会发现它比java方便很多,包括书写格式、空判断、代码量以及扩展函数上都有优化。而kotlin本身就提供给我们一...
我们在开发的过程中,经常会遇到ScrollView里面嵌套ListView或者RecyclerView的场景,这时候我们就会遇到滑动冲突,还有列表自动滑动到ListView和...
Kotlin协程是一种编程思想,其中一个比较重要的应用场景就是线程控制。以往我们在需要并发的时候,往往会用到java 的Executor和Android 的AsyncTask...
我们从下面几个方面分析Android jetpack viewmodel的原理 viewmodel涉及的类以及数据结构 viewmodel的启动 viewmodel的恢复 v...
LiveData的特点:1、采用了观察者模式,数据发生改变的时候,可以自动回调2、不需要手动处理生命周期,不会因为activity的销毁跟创建而丢失数据3、不会内存泄漏4、不...
线程池的好处 1、重用线程池中的线程,避免线程的创建与销毁带来的性能开销 2、能有效控制线程池的最大并发数,避免大量线程因抢占资源而导致的阻塞 3、能对线程进行简单的管理,提...
首先自定义View分几种类型 1、继承View 2、继承ViewGroup 3、继承View的派生类,比如TextView, 类似于扩展功能 4、继承ViewGroup的派生...
上一篇文章总结了AIDL的常见使用,并借此分析了Binder的上层原理。这里再跟大家讲一讲Binder偏底层一点的东西。 首先,我们来讲一讲为什么要用Binder来实现IPC...
以前看源码经常会看到Binder的东西,比如AMS,ActivityThread等,之前虽然对Binder有所了解,但也是模模糊糊的,这次终于下定决心好好的弄一弄它的原理,揭...
从Android 4.4 KitKat开始,系统已经支持状态栏设置沉浸式,设置的方式有两种: 一种是直接在主题里设置: true 另外一种是在代码里设置:window.ad...