自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Android 常用设计模式

由于项目变更的频繁性,作为一名程序员,我们需要掌握设计模式的必要性,就不言而喻~~,下面就是一些我自己学习的设计模式总结。 接下来,主要是针对几个比较常用模式进行讲解,主要是以下几种:观察者模式适配器模式代理模式工厂模式单例模式命令模式1.观察者模式(Observer Pattern)释义:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。故事理解:观察者想知道公司所有MM的情况,

2021-11-22 11:07:11 133

原创 NDK开发 从入门到放弃(一:基本流程入门了解)

一、前言● NDKNative Development Kit(NDK)是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。● JNIJava Native Interface(JNI)标准是java平台的一部分,JNI是Java语言提供的Java和C/C++相互沟通的机制,Java可以通过JNI调用C/C++代码,C/C++的代码也可以调用java代码。● JNI与NDK的关系NDK可以为我们生成了C/C++的动态链接库,J

2021-11-18 14:20:56 205

原创 Android AsyncTask实现原理和使用技巧分享

为什么要用AsyncTask我们写App都有一个原则,主线程不能够运行需要占用大量CPU时间片的任务,如大量复杂的浮点运算,较大的磁盘IO操作,网络socket等,这些都会导致我们的主线程对用户的响应变得迟钝,甚至ANR,这些会使应用的用户体验变差,但是有时又的确需要执行这些耗时的任务,那么我们通常可以使用AsyncTask或者new Thread来处理,这样把任务放入工作线程中执行,不会占用主线程的时间片,所以主线程会及时响应用户的操作,如果使用new Thread来执行任务,那么如果需要中途取消任务

2021-11-17 17:54:34 1051

原创 字节Android工程师都在学习的Activity与Activity调用栈,你都学习了?

本文为Android的Activity相关知识整理,具体参考了《Android开发艺术探索》第一章《Android群英传》第八章《第一行代码》第二章Activity是与用户交互的第一接口。Activity生命周期Activity具有多种形态。其生命周期图如下:其中,有三个稳定态,其他都是过渡态:Resumed ,此时,Activity处于栈顶,处理用户交互。Paused,当Activity的一部分被挡住的时候进入这个状态,不会与用户交互。Stopped,当Activity完全被覆盖时进

2021-11-16 14:38:30 1687

原创 BAT大厂Android工程师带你学习Framework内核解析

前言对于Android开发,干上几年后,都要进阶,或者直接转行了。如果你还在干Android,想要进阶 对Framework的了解是必不可少的过程,下面就开始进入今天的主题吧。我们知道,对于任何程序语言而言,入口一般都是main函数。那Android的程序入口在哪呢? 他的main函数是怎么启动起来的呢?可能熟悉Android的同学,知道一个应用程序的入口在ActivityThread中,那有个问题,ActivityThread中的main函数是何时被谁被调用的呢?将从本文中找到以上答案,如果已经

2021-11-15 10:55:35 350

原创 BAT软件工程师带你深入理解AMS --- 一 AMS 的启动

一 Zygote forkZygote fork SystemServer 的过程如下:ZygoteInit#forkSystemServerZygoteInit#handleSystemServerProcessZygoteInit#zygoteInitRuntimeInit#applicationInitRuntimeInit#findStaticMain1.1 Zygote fork SystemServer 进程ZygoteInit#forkSystemServer 配置system

2021-11-12 17:08:05 390

原创 Binder java层实现原理

https://www.bilibili.com/video/BV1zb4y187MW/一、aidl文件下面是自己写的一个aidl文件package android.os;interface IHelloService{void setVal(int val);int getVal();}注意,这是一个aidl文件,编译后会生成一个IHelloService.java。我们来看一下这个文件的内容隐藏着什么奥秘,可以这么神奇地支持进程间通信。在java中有一个aidl文件,让我们省去了很多

2021-11-11 20:23:18 111

原创 进程间通信IPC与Binder机制原理

1, Intent隐式意图携带数据2, AIDL(Binder)3, 广播BroadCast4, 内容提供者ContentProvider5,Messager(内部通过binder实现)6,文件共享7,socket--------------------------------------------Binder底层原理----------------------------------------Binder是一种进程间通信机制,它提供远程过程调用(RPC)功能; Binder作为一个类,

2021-11-10 20:49:21 112

原创 BAT大厂软件工程师 3分钟带你看懂android的Binder机制,必看

一**.引言**最近一段时间由于工作,接触到framework部分比较多一点,也难免要和Binder打一些交道,也整理了一些相关知识,但准备写这篇文章时,还是有些慌。而且关于整个Binder机制的复杂程度不是三言两语能描叙清楚的,也害怕自己的理解有些偏差,误导一些朋友(ps:反正也没人看…扎心)所以也参考了很多资料。本文主要站在Android开发的角度来大致解析下Binder在java层的一些知识原理,给大家脑子形成一个完整的概念,比如AIDL的实现原理,Binder是怎么通信的等等,文章文字较多,请耐

2021-11-09 20:25:02 132

原创 android进程保活实践

前言进程保活的关键点有两个,一个是进程优先级的理解,优先级越高存活几率越大。二是弄清楚哪些场景会导致进程会kill,然后采取下面的策略对各种场景进行优化:提高进程的优先级在进程被kill之后能够唤醒进程优先级Android一般的进程优先级划分:1.前台进程 (Foreground process)2.可见进程 (Visible process)3.服务进程 (Service process)4.后台进程 (Background process)5.空进程 (Empty process)

2020-12-04 11:48:17 165

原创 Android Studio 打包生成apk

选择Build -> Generate Signed APK点击“Next”:备注:第一次打包需点击“creat new…”来生成.jks密钥文件;之后的打包点击“Choose existing…”来完成即可。2. 生成.jks密钥文件(无“.jks”文件的打包)(1) 点击“creat new…”:(2) 填写如下:(3) 点击“ok”返回上页(图2-2)并回显所写信息:!](https://img-blog.csdnimg.cn/20201204104743682.png.

2020-12-04 10:59:12 227

原创 Android开发热门前沿知识

Android架构设计模式MVC架构设计模式:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。MVP架构设计模式:MVC全名是Model View Persenter,MVP由MVC演变而来,是现在主流的开发模式。MVVM架构设计模式:MVVM全名是Model-View-ViewModel,它本质上就是MVC的改进版。各种模型的主要目的都是是分离视图(View)和模型(Model),即将UI界面显示和业务逻辑进行.

2020-12-03 16:17:08 104

原创 Android开发热门前沿知识

Android架构设计模式MVC架构设计模式:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。MVP架构设计模式:MVC全名是Model View Persenter,MVP由MVC演变而来,是现在主流的开发模式。MVVM架构设计模式:MVVM全名是Model-View-ViewModel,它本质上就是MVC的改进版。各种模型的主要目的都是是分离视图(View)和模型(Model),即将UI界面显示和业务逻辑进行.

2020-12-03 16:07:13 95

原创 Android 技能图谱学习路线

Java基础Java Object类方法HashMap原理,Hash冲突,并发集合,线程安全集合及实现原理HashMap 和 HashTable 区别HashCode 作用,如何重载hashCode方法ArrayList与LinkList区别与联系GC机制Java反射机制,Java代理模式Java泛型Synchronized原理Volatile实现原理方法锁、对象锁、类锁的意义和区别线程同步的方法:Synchronized、lock、reentrantLock分析Java锁的种类

2020-12-03 15:45:27 103

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除