- 博客(77)
- 收藏
- 关注

原创 Android O适配---NotificationChannel
一.Android O上的新特性1.通知NotificationChannel2.快捷方式ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
2017-10-29 13:06:57
25091
1
原创 插件化
插件化原理是将app中一些功能模块做成插件,一方面减小安装包的体积,另一方面实现app的动态扩展。hook越多,侵入性越多问题:1.插件化是什么?插件化是apk动态扩展功能的一种技术,特点: 免安装运行。插件具体载体可以是apk,dex文件,zip包。2.插件化的运行过程?动态加载类或者资源,实现免安装的功能扩展。3.插件化要解决的问题如何把插件apk中的代码和...
2019-11-16 21:54:15
433
转载 Android Q适配收集
https://blog.youkuaiyun.com/xiangzhihong8/article/details/100534958
2019-09-06 15:52:20
216
原创 WebView
webview1.webview extends AbsoluteLayout ViewGroup2.Android 4.4 之前使用 WebKit 作为渲染内核,4.4 之后采用 chrome 内核3.uid 1000的进程是不能运行webview组件的 final int uid = android.os.Process.myUid(); ...
2019-06-04 10:22:39
233
原创 Android P对非SDK接口的限制
1.sdk接口https://developer.android.google.cn/reference/packages,能够在谷歌网站查询到的接口,参考google官网2.非 SDK 接口:除以上的 SDK 接口外,其他都是非 SDK 接口调用非SDK会出现的问题:通过反射或者JNI访问非公开接口时会触发警告/异常3.非 SDK 接口管控名单https://develo...
2019-05-29 15:14:06
1073
原创 网络框架总结
HttpUrlConnetction该协议是对网络请求这个过程的包装。从协议的解析到TCP的连接,以及tcp连接的缓存,整个过程就是应用层到网络层的一次网络请求过程,Okhttp1.基本用法异步/同步请求2.原理一个网络请求最必要的两部分是请求(Request)和返回结果(Response)任何网络请求框架都是对这两个过程的包装,是网络请求变得更加简单和智能特性:...
2019-05-20 14:51:37
198
原创 图片处理
一,图片处理框架ImageLoader缓存策略:内存缓存+磁盘缓存内存缓存1.缓存是用什么数据结构实现的数据结构LruMemoryCache里面有个LinkedHashMap来存储缓存Bitmap对象。key是URL,value是bitmap对象LinkedHashMap查找的时间复杂度是:O(1)LruMemoryCache缓存的是bitmap的强引用,当前缓存图片大于之前设...
2019-05-16 19:36:30
148
转载 安卓源码阅读
如果想深入的了解Android系统,需要学习了解以下知识。1, 语言-JAVA/C/C++2. 操作系统-Linux3.编译系统-AOSP使用Make系统进行编译. 了解基本的Makefile编写会让你更清晰了解AOSP这个庞大的项目是如何构建起来的4.源码管理-GITimageLoader的缓存机制https://blog.youkuaiyun.com/ezview_univi...
2019-05-15 20:03:44
490
原创 近期优化总结
1.SharedPreferences的apply和Commit方法的那些坑不要在主线程(UI线程)中频繁的使用commit方法。https://blog.youkuaiyun.com/tonywu1992/article/details/83419448
2019-05-12 17:49:27
121
原创 关于蓝牙
一. android为什么要hide一些apiSDK之所以不给出隐藏的API肯定有其原因:1. 出于安全性有些api是不能直接暴露给开发者,是处于安全性的考虑2.是后续版本兼容性的考虑因此不能保证隐藏API能在所有Android平台上很好地运行总之hide的api是不对开发者的,是对它的宿主开发者。3.调用hide的api前提是知道类名,然后使用反射拿到变量和类名...
2019-05-09 20:07:51
200
转载 Android-内存泄露学习总结(二)
https://yq.aliyun.com/articles/3009?spm=a2c4e.11153940.blogcont3009.111.644a2b94EGvUfB&p=2#commentshttps://blog.youkuaiyun.com/gemmem/article/details/8920039https://blog.youkuaiyun.com/gemmem/article/deta...
2019-05-03 16:44:18
111
原创 Android消息机制总结
先问几个问题1.Handler消息处理机制一个消息处理机制包括三个部分:发送消息,消息循环和处理消息Handler:发送消息+处理消息Looper:消息循环MessageQueue:存储消息的数据结构+分发消息具体源码不在这里分析。。。2.ThreadLocal在Handler中的作用一句话概况:存储线程私有的数据Looper对象3.每个线程是否可以有多个han...
2019-04-25 10:12:38
187
原创 Android-JMM学习总结(一)
一.Java内存模型学习Java内存模型的思路:1.Java 内存模型是什么2.解决什么问题及具体是怎么解决的3.内存划分4.垃圾回收机制5.内存泄露分析背景:CPU 和缓存一致性(可见性):CPU 和主存之间增加缓存,在多线程场景下会存在缓存一致性问题,原因是多核多线程处理器优化(原子性):处理器可能会对输入代码进行乱序执行处理指令重排(有序性):编译器指...
2019-04-24 09:12:17
315
原创 一个好的sdk具备的特点
一,什么是SDK脑暴一下,一个好的sdk具备的特点:1.简单的使用说明2.基本功能3.权限校验4.灵活的更新方式5.友好提示:如参数合法性检验,对边界的严格检查6.sdk体积7.API职责的合理划分8.易用性/稳定性/灵活性/资源开销工作中接触的项目有适配其他合作方的sdk,具体实现是:合作方将其基础功能打包成sdk提供给我们,我们集成后,做出面向用户的...
2019-04-18 17:32:31
2648
转载 安卓ANR
此次转载的有关ANR的博文,是从系统层面,进程的角度对ANR问题做了深刻分析。值得收藏。https://mp.weixin.qq.com/s?__biz=MzI5NjE3NzA4Mg==&mid=2650359967&idx=1&sn=7d59915254a6a346c4d5eda369141eb6&chksm=f445b44ac3323d5c458405f65...
2019-04-14 17:18:59
615
原创 XXX项目总结
一,项目背景专门给小孩做一个玩手机的模式或者环境,可以看视频,听音乐,电话防乱接,使用时间管控等二,功能模块2.1 家长中心家长中心主要负责:电话监控/时间监控/护眼模式/密码/网络等相关功能2.1.1 来电监听使用TelephonyManager相关接口监听电话的状态,然后根据来电状态显示拦截或提示动画。TelephonyManager.listen(mPhoneSt...
2019-04-14 14:07:38
147
原创 双亲委派机制
参考博客https://www.jianshu.com/p/f7b851c64828例子:4-08 19:47:18.003 17935 17958 D RuntimeInjector: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.gson.GsonBuilder" on pat...
2019-04-09 13:22:30
328
原创 android MediaPlayer学习笔记
一,基本概念Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是Android基本库中的B...
2019-04-08 10:18:36
257
原创 插件化学习
插件化汇总https://www.jianshu.com/p/6efbb13b3f76微信重构https://mp.weixin.qq.com/s/6Q818XA5FaHd7jJMFBG60w?问题:Event总线作为模块通信的媒介,它的特点适合一对多的广播场景其实本地的通信,能用接口就挺好,不能用的时候,再用协议封装也来得及事件发布者与订阅者互相不知道对方的存在,是解...
2019-02-20 17:44:12
164
转载 Android开发常用仓库地址
https://blog.youkuaiyun.com/u013005791/article/details/79098018
2019-01-10 11:37:52
1139
原创 lottie动画学习
最近项目中有用到动画的地方,有好几处动画,设计师给了帧动画。使用帧动画虽然简单,但是会消耗内存和增加apk的体积。这两个问题是系统app不能容忍的。最后推动设计师提供了lottie格式的动画资源。解决方案:1.尝试使用surfaceview承载帧动画,可以参考以下文章https://github.com/yuyashuai/SilkyAnimation2.使用lottie,lo...
2019-01-05 17:54:39
735
原创 Android Jetpack
Android Jetpack: https://www.jianshu.com/p/fea5789f5d6d?utm_campaignAndroid:你好,androidX.再见,android.support:https://www.jianshu.com/p/41de8689615d
2018-11-25 17:18:21
351
原创 Android Architecture Component -- Lifecycle 学习总结
最近在android-p上的settings模块-开发者选项中添加一个小feature,需要在开发者选项页面onResume的时候更新下UI,查看了代码后,发现android-p上Settings模块进行了重构。引用了Architecture Component -- Lifecycle组件管理需要在生命周期方法中处理的业务逻辑。简单说:Lifecycle 将系统组件(Activity、Fragm...
2018-11-25 16:56:13
191
原创 关于主线程操作的一些总结
/* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * Y...
2018-11-25 14:45:08
364
转载 Android targetSdkVersion 原理
https://www.race604.com/android-targetsdkversion/
2018-11-14 16:03:59
375
原创 记录一次ko编译
最近接触一个项目,需要编译ko文件,从来没有接触过,先问自己四个问题:1.什么是ko文件.ko文件是kernel object文件(内核模块),该文件的意义就是把内核的一些功能移动到内核外边, 需要的时候插入内核,不需要时卸载。2.如何制作ko文件环境配置:1.) export PATH="$PATH:/media/msy/d1f626d8-c58c-415d-910c-39bd...
2018-11-14 14:55:04
1067
转载 设备管理器
https://blog.youkuaiyun.com/doris_d/article/details/51499836背景:申请APP变成设备管理器,修改密码。学习了下该模块的知识。
2018-11-08 14:14:17
280
转载 Android MVP架构搭建
http://www.jcodecraeer.com/a/anzhuokaifa/2017/1020/8625.html?1508484926https://www.jianshu.com/p/9a6845b26856?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=weix...
2018-10-15 18:07:06
222
原创 java反射
一,理解jvm虚拟机原理二,反射 2.1什么是反射 反射是什么呢?当我们的程序在运行时,需要动态的加载一些类这些类可能之前用不到所以不用加载到jvm,而是在运行时根据需要才加载。在Java运行时环境中,对于任意一个类,可以知道这个类有哪些属性和方法。对于任意一个对象,可以调用它的任意一个方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Ref...
2018-10-14 16:23:32
203
原创 JNI学习
一,JNI原理1.两种注册方式:动态注册和静态注册2.java层调用native层,native层调用java层https://www.jianshu.com/p/5847a2cb68c0二,so加载过程1.先找so具体路径so路径主要来源有两大类:1. vender/lib system/lib系统路径 2. data/app/XXX/lib app路径不同版本会有差...
2018-10-10 18:32:32
229
原创 Android跨进程通信
一 多进程之间的通信由于不同进程所拥有的地址是两块不同的地址空间,所以不能直接通过共享内存共享数据了。Linux常用跨进程通信方式:管道,信号量,共享内存,socketAndroid常用跨进程通信方式:Intent ,共享文件,SharedPreferences,Binder,socket,基于Binder的Messenger.下面详细学习进程间的通信方式。二,进程之间的通信方式...
2018-10-07 14:56:06
577
原创 http 和 https 有何区别?如何灵活使用?
参考大神的博客:https://www.zhihu.com/question/19577317https://blog.youkuaiyun.com/u012050154/article/details/520455111、客户端发起HTTPS请求就是用户在浏览器里输入一个https网址,然后连接到server的443端口2、服务端的配置采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组...
2018-07-05 14:05:32
960
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人