- 博客(20)
- 资源 (22)
- 收藏
- 关注
原创 面试笔记:Java反射原理
什么是反射(反射的机制)反射是在运行状态中对任意一个类都可以知道其内部所有的属性和方法,对于任意一个对象都可以调用其属性和方法,这种动态获取信息和动态调用对象方法的功能称为Java的反射机制。反射的优缺点优点:可以动态执行和动态创建,在编码期不知道类和对象的具体信息,但在运行期间依旧可以根据业务功能执行方法和访问属性,最大程度发挥了编码的灵活性缺点:对性能有影响,反射操作总是慢于直接执行Java代码,代码量增多。维护起来比原生Java代码繁琐反射会跳过类型检查,导致安全性问题,例如泛型的类.
2021-11-19 19:47:37 2199
原创 面试笔记:Android网络编程(Http,Socket)协议
网络分层解构(四层解构)应用层(HTTP,FTP)定义了如何包装和解析数据,会按照HTTP协议将数据进行包装,然后传递到运输层传输层(TCP,UDP)运输层有两种运输方式主要是将数据发送到对应的端口,TCP为可靠的运输,UDP为不可靠的运输,一般都是通过Socket来进行调用,因为Socket封装了一组调用TCP和UDP的接口。网络层(IP)这一层主要指定了要传输到那个IP地址,其中会选择最优线路和路由算法等操作。数据链路层(ARP)负责把IP地址解析为硬件MAC地址,这样就找到了对应的..
2021-11-19 19:44:58 1932
原创 面试笔记Handler
Looper 死循环为什么不会导致应用卡死内部使用epoll机制实现(epoll机制:IO多路复用的一个实现;IO多路复用:在一个操作里同时监听多个输入输出源;)MessageQueue优先级队列 是如何进行排序的优先级排序,就是依靠msg对象中提供的when参数,根据时间来进行排序;Message结构Message是单链表结构:非线性,非顺序的物理结构,由n个节点组成;链表是采用“见缝插针”的存储方式,不要求内存连续,靠next指针关联;存储的时候是随机存储;访问的时候是顺序访问;..
2021-11-19 19:42:08 1541
原创 面试笔记Glide
// Glide使用RequestManager with = Glide.with(this);RequestBuilder<Drawable> load = with.load(url);load.into(iv); 为什么RequestManager能够管理生命周期?是因为Glide通过RequestMangerRetriever创建一个无UI的Fragment,并将这个Fragment的生命周期绑定到RequestManager上,所以当activity显示或隐藏或销毁时
2021-11-03 11:07:15 107
原创 面试笔记MVC-MVP-MVVM
MVCModel业务模型类,主要负责从网络或磁盘获取数据。View在Android中对应的是xml布局和view组件,负责将数据进行展示ControllerAndroid中控制层是由activity来负责的,activity承担了view的显示和业务逻辑的控制,所以比较繁杂。由于业务逻辑都在activity中处理所以view和model是可以直接交互的,所以m v c三层是高度耦合的。MVPMVP增加了一个中间层Presenter来解决耦合问题,Model和View的交互统一交给p层
2021-11-03 10:38:06 1107 1
原创 Android APP启动流程
Android应用开发中用到最多的Application,Activity是如何被创建出来的,又是如何被呈现到屏幕上的,下面通过源码的方式去体验一次完整的创建过程。先声明几个开发者能够看得见的比较重要的类:android.app.ActivityThreadandroid.app.Instrumentationandroid.app.ActivityThread.ApplicationThread这三个类组合在一起有一点MVP的思想在里面,M—>ApplicationThread,V—&g
2021-05-26 07:35:16 328
原创 Android调用系统相机和相册 兼容4.0—10.0 图像可压缩可上传
最近在项目中有需求需要用户上传照片,这个时候就需要在应用中打开相机和相册来辅助用户完成操作,在完成该功能的过程中出现了很多调用问题,不过最终在不断的测试下终于完成了该功能,下面就是具体的代码逻辑。...
2021-01-31 12:40:18 500 2
原创 创维酷开电视(coocaa tv)应用安装成功,设备重启后应用莫名消失的问题
公司的TV项目在上线酷开渠道的时候遇到了一个莫名的问题:应用安装成功后初次是可以正常运行的,但是在设备重启后打开系统的已安装应用列表后发现应用已经消失,通过pm查询却又发现有应用的包名,之后进行反复的测试发现是因为manifest清单文件里:android:installLocation这个属性的问题。android:installLocation的值有三个 internalOnly(内部存储) | auto(系统自动选择) | preferExternal(外部存储)如果不设置的情况下默认值为:aut
2021-01-25 10:39:15 2927 1
原创 Android 计算网络速度&文件下载剩余时间<<最优方案>>
最近在项目开发中遇到了一项功能,需要在下载文件时显示出当前的网络速度和预计剩余时间,在调研中发现使用的比较多的是通过TrafficStats来获取网络使用量然后在间隔每秒后重新获取一次网络使用量,两者相机算既可以得出每秒的网络使用量。public class FlowStats { private long lastTotalRxBytes; private long lastTimeStamp; public String getNetSpeedToMB(Context c
2020-12-15 09:29:11 2125
原创 Android自定义控件系列,自定义一个特殊的密码输入框
在项目中有涉及到输入密码的地方并且UI已经给了相应的效果图,由于普通的EditTextView已经无法满足要求,所以只能自己造轮子了。先看一张效果图老规矩 还是动手前先理思路~输入框嘛肯定得处理很多的按键响应事件 系统的EditTextView已经处理的够好了 所以得基于它来扩展~得把一些输入框的默认样式替换成自己的~把整个宽度等分成6份并计算出每个框框的x,y的位置并记录下来~设置监听事件用来获取当前输入的内容和数量~每当内容变化时动态的绘制成对应框框里的小圆点~计算下一个要输入的索引位
2020-10-31 11:04:16 558
原创 100行代码撸一个可渐变颜色的TextView
在项目中会遇到各种各样的需求和效果,而这篇文章产生的前提就是在接到了产品经理提到的需求,在一个可左右滑动的页面顶部居中放置一个标识当前页面的指示器,在页面进行切换的时候当前页面的指示器从选中颜色渐变成默认颜色,而下个即将显示的指示器从默认颜色渐变成选中颜色。看下效果:...
2020-08-19 07:55:38 289
原创 Android运行时权限 多终端适配130行代码一劳永逸
Android在API 23之后开启了危险权限动态申请的机制,具体有哪些权限这里不做赘述,只拿笔者在手机和TV端开发中用到的权限例举,示例Demo并没有依赖任何的第三方库,纯Android代码,大约130行左右。1.新建一个用于检查权限的Activity,定义申请权限数组和请求码,在onCreate中进行权限检查,将没有授权的权限添加到待申请列表。 @Override prot...
2019-12-26 14:57:27 320
原创 Android (AlertDialog Dialog)弹框提示的极简操作
最近在新项目的开发中,经常使用要使用到Android的AlertDialog弹框,所以做了一个简单的封装。 /**提示框 * * @param tipText 要提示的文本 * @param mContext 视图上下文 */ public static void showTipDialog(String tipText,Context mC...
2019-10-31 15:58:30 724 1
原创 linux上查看日志文件技巧,tial、cat、wc,sed详解(文件大小、行数、查看指定行)
linux上查看日志文件技巧,tial、cat、sed详解(文件大小、行数、查看指定行)cat 命令wc 命令tail 命令sed 命令在一些配置比较齐全的公司都会有运维工程师这个职位,但也有大部分公司并没有配置这个职位,这个时候就需要开发人员掌握一定的服务器操作,今天就把我学到的一些linux日志操作写一下,希望对需要在服务器操作的朋友有所帮助。cat 命令这个命令是最直接的查看方式...
2019-07-11 16:50:22 4003
原创 ijkplayer-android编译 兼容多视频格式
目前所在公司是做教育少儿类视频播放的,起因是测试人员测试应用时发现的bug。(有的是视频播放有画面没有声音,有的是有声音没有画面)查找问题原因先看了一下播放正常的视频的编码信息视频编码格式h264 音频编码格式aac然后是有画面没声音的视频编码格式视频编码h264 音频编码格式(mpeg audio layer 1/2)看不懂什么意思,百度了一下说是mp2格式...
2018-09-13 16:28:02 4633 15
转载 Go语言与前辈们的对话
本文转载自:http://blog.csdn.net/UzV80PX5V412NE/article/details/788242951初次见面虽然这个目录中各种编程语言写的程序层出不穷,但Java还是怀念不幸罹难的C老头儿。他经常给同一目录中的Python ,Ruby说C老头儿知识多么渊博,贴近硬件运行,速度飞快,能从他身上学到很多东西等等。(注:参加《C老头儿和Java小子的硬盘夜话》)今天目录...
2018-02-12 15:14:59 297 1
原创 nginx服务代理后访问出错 403 forbidden 的解决办法
之前在配置nginx时遇到的这个问题最终得以解决 所以贴出解决的办法机器是conterOS 7.3的版本出现这种情况的原因我一共使用到三个方法原因1 是因为要访问的文件所属者不属于nginx 到文件存储目录输入命令: chown nginx:nginx file 更改文件的所有者原因2 是因为文件没有可读可写权限 到文件存储目
2018-01-29 10:39:16 11735
原创 GIT本地代码处于detached HEAD的情况(又称游离状态)的解决办法
有时候git由于一些操作的问题出现了detached HEAD 的情况 对于新手来说很焦急,但又不敢动,生怕搞错点什么把劳动成果付之东流。 下面的解决办法要顺序执行: 1. 先git commit 进行提交 (提交完你的本地分支指向的是你刚commit完的状态码 类似:06763f6) 2. git branch short06763f6 这句执行是在本地创建一个short分支
2018-01-29 10:20:47 3752
activationPhoto.zip
2021-01-31
PermissionDemo.zip
2019-12-26
Android.zip
2019-09-20
Android应用源码通用DLNA实现手机电视同步播放
2017-02-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人