- 博客(55)
- 资源 (5)
- 收藏
- 关注
原创 Kotlin 版 天气客户端
## 介绍---完善自己开发的开源框架,丰富业余时间## 简介1. 天气客户端2. 自定义:晴天、阴天、多云、雨天、雪天、雨夹雪、雾、霾、风、沙等天气动态背景利采用 `MVP` + `okhttp3` + `RxJava` + `Retrofit` + `EventBus` 等架构设计的项目,项目代码结构清晰并且有详细注释 。## API[**和风天气 开放 API**](https://dev.qweather.com/)...
2021-06-16 14:44:09
543
原创 Android 滑动解锁,滑动接听。仿IOS滑动关机。
简介滑动解锁,滑动接听。仿IOS滑动关机。运行截图使用 //设置监听 SlideToggleView slideToggleView = findViewById(R.id.slideToggleView); slideToggleView.setSlideToggleListener(new SlideToggleView.SlideToggleListener() { @Override publi
2021-03-19 14:07:21
561
1
原创 Service starting has been prevented by iaware or trustsbase sInfo ServiceInfo 解决方法
问题:ActivityManager: Service starting has been prevented by iaware or trustsbase sInfo ServiceInfo{c50ea35 xxx.xxx.xxx.ServiceName}问题描述,该问题再华为部分手机升级到Android 10.1之后,启动服务会遇到该问题。解决方法:启动的时候加个延时就可new Handler().postDelayed(new Runnable() { @Overri
2020-07-18 10:25:26
3452
4
原创 自定义系统电池,自定义系统信号强度,自定义系统状态栏
介绍---1. 自定义系统状态栏,时间,电量,信号强度实时更新 自定义主题2. 自定义电量图标(低电量变红)2. 自定义信号强度图标(自定义信号大小颜色等)github示例可下载APK直接体验Demo一、自定义系统状态栏,时间,电量,信号强度实时更新注册广播/** * 注册广播监听 */ public void registerStatusBarReceiver() { mContext.registerRec..
2020-07-15 16:16:53
618
原创 视图滑动器,横向滑动,纵向滑动,画廊,基于RecyclerView的可滚动列表的实现,其中选中项居中,并且可以使用滑动来更改
该库是基于RecyclerView的可滚动列表的实现,其中选中项居中,并且可以使用滑动来更改。介绍1. 可设置横向滑动,纵向滑动。2. 选中项居中。3. 可设置无限滑动。4. 滑动到指定item。5. 内有滑动动画,可设置滑动动画时长。先上代码:HorizontalView示例使用说明添加jitpack库// build.gradle(Project:)allprojects { repositories { ... ..
2020-06-30 17:32:57
692
原创 高拓展高自定义性TitleBar,完美替代Android系统默认
自定义标题栏布局,沉浸式支持,标题栏图片背景,可自定义等TitleBar 直通车介绍支持自定义标题栏布局,支持XML中直接以子布局编写 支持自定义前景布局,如显示Loading效果 支持自定义背景布局,如图片等 支持自定义底部分割线,可以投影效果显示在外部 支持自适应状态栏暗亮色图标模式,可实时动态刷新示例图片集成方式allprojects { repositories { ... maven { url 'https://www.jitpac...
2020-06-22 15:29:24
269
原创 Android 文件选择器,指定选择文件夹还是文件,根据后缀名过滤,支持多选
Android 文件选择器,指定选择文件夹还是文件,根据后缀名过滤,支持多选### 介绍1. 可指定选择文件夹还是文件,选择显示文件也可指定后缀名显示获取连接2. 可通过扫描全盘的方式,选择指定后缀名的文件3. 支持多选。4. 支持Activity、FragmentFileSelector 直通车### 用法```allprojects { repositories { ... maven { url 'https://www.jit.
2020-06-22 15:09:48
2723
9
原创 Android SDK开发,解决生成aar包并在其他工程引用aar包
解决思路:解析引用的aar合并到自己的aar里面,只生产一个aar第一步: Apply plugin添加以下代码到你工程根目录下的build.gradle文件中:buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:xxx' classpath 'com.kezong:..
2020-05-20 22:49:32
2521
原创 ubuntu18.04下python3库cv2的安装
安装pip3sudo apt install python3-pip安装依赖项安装libopencv-dev依赖包 sudo apt install libopencv-dev安装opencv-python库sudo pip3 install opencv-python成功
2019-10-10 11:42:20
1139
1
原创 Android对程序app前后台监控
app在前台还是后台的判断有很多种,如:1.在BaseActivity中对Activity的进行保存管理,可以通过根据当前的所有Activity的状态来判断应用是否是在前台显示。2.在application中注册registerActivityLifecycleCallbacks()的回调,通过回调来判断是否在前台3.通过获取系统ActivityManager来判断。4.其他方法p...
2019-09-30 10:08:31
867
原创 ubuntu 18.04 安装 genymotion
0.VirtualBox在 Linux 下安装 Genymotion,必须首先安装 VirtualBox$ sudo apt update sudo apt install virtualboxNow, pressyand then press<Enter>to confirm the installation.VirtualBox shou...
2019-08-29 10:46:12
5709
3
原创 Ubuntu 18.04 安装 ftp server
介绍FTP是文件传输协议的缩写,是一种曾经广泛用于在客户端和服务器之间移动文件的网络协议。它已被更快,更安全,更方便的文件传输方式所取代。许多休闲互联网用户希望通过https直接从他们的网络浏览器下载,命令行用户更有可能使用安全协议,如scp或SFTP。FTP仍然用于支持具有特定需求的遗留应用程序和工作流。如果您可以选择使用哪种协议,请考虑探索更现代的选项。但是,当您确实需要FT...
2019-08-22 18:27:23
539
转载 Android四大组件之Activity详解
.Activity的本质Activity是Android提供的四大组件之一,是进行Android开发必不可少的组件.Activity是一个界面的载体,可以把它与html页面进行类比,html页面由各种各样的标签组成,而Activity则可以由各种控件组成.然而Activity也并不是那么简单.查看Activity类的源码我们就可以看到,这个类大概有六千多行代码,说明Android对Activi...
2018-11-05 18:06:38
234
转载 Collection、ArrayList、HashMap、HashSet转为线程安全(集合的安全性问题)
在集合中 Vector 和 HashTable 倒是线程安全的,打开源码会发现其实就是把各自核心方法添加上了synchronized 关键字。转换方法:Collections 工具类提供了相关的 API,可以让上面那 3 个不安全的集合变为安全的:1. // Collections.synchronizedCollection(collection)2. // Collection...
2018-10-28 22:12:31
922
转载 Volley为什么不适合下载上传大文件?为什么适合数据量小的频率高的请求?
作者:梦想家 链接:https://www.zhihu.com/question/51021564/answer/123888450 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Volley的网络请求线程池默认大小为4。意味着可以并发进行4个请求,大于4个,会排在队列中。 Request#getBody() 方法返回byte[]类型,作为 Http....
2018-10-28 22:11:24
1026
转载 理解Handler、Looper、MessageQueue、Thread关系?
图解首先Android中的每一个线程都会对应一个MessageQueue和Looper。见名知意,MessageQueue即线程用来维护线程产生的消息的消息队列,而这个队列的调度则是由Looper来完成的。Looper负责将产生的消息放入队列,并及时的将合适的消息从队列中取出并交由合适的接受者处理。处理消息的便是每个线程内部的Handler对象,特别是在UI线程中,由于Handler与UI处于同...
2018-10-28 22:02:20
442
转载 Android热修复技术原理详解(最新最全版本)
Android热修复技术原理详解(最新最全版本)本文框架什么是热修复? 热修复框架分类 技术原理及特点 Tinker框架解析 各框架对比图 总结 通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简单描述一下Tinker的框架结构。一、什么是热修复?正常开发流程热修复开发流程热修复优势修复什么?...
2018-10-25 17:47:35
348
转载 Android插件化技术——原理篇
| 导语 插件化技术最早从2012年诞生至今,已经走过了5个年头。从最初只支持Activity的动态加载发展到可以完全模拟app运行时的沙箱系统,各种开源项目层出不穷,在此挑选了几个代表性的框架,总结其中的技术原理。由于本人水平有限,插件化框架又相当复杂,文中若有错误或者不准确的地方望高手指点。内容概要一、发展历史插件化技术最初源于免安装运行apk的想法,这个免安装的apk可以...
2018-10-25 17:18:52
699
转载 常见Android面试题及答案(详细整理)
以下是一些常用的Android面试题及答案,有需要没需要都可以备着,希望能帮到大家。 1. 请描述一下Activity 生命周期。答: 如下图所示。共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(), onResume(), onPause(),onStop(), onDestroy()。onCreate(): 创建Acti...
2018-10-25 11:28:55
1027
原创 线程通信和进程通信区别(线程进程区别)
进程和线程的区别:对于进程来说,子进程是父进程的复制品,从父进程那里获得父进程的数据空间,堆和栈的复制品。而线程,相对于进程而言,是一个更加接近于执行体的概念,可以和同进程的其他线程之间直接共享数据,而且拥有自己的栈空间,拥有独立序列。共同点: 它们都能提高程序的并发度,提高程序运行效率和响应时间。线程和进程在使用上各有优缺点。 线程执行开销比较小,但不利于资源的管理和保护,而进程相反。同时,线程...
2018-05-17 13:56:09
1108
原创 安卓自定义View进阶-事件分发机制原理
前讲解了很多与View绘图相关的知识,你可以在 安卓自定义View教程目录 中查看到这些文章,如果你理解了这些文章,那么至少2D绘图部分不是难题了,大部分的需求都能满足,但是关于View还有很多知识点,例如: 让绘图更加炫酷的Paint,让View动起来的动画,与用户交互的触控事件 等一系列内容。本次就带大家简单的了解一下与交互息息相关的东西-事件分发原理。本次魔法小火车的终点站是事件分发,请各位...
2018-05-16 16:00:51
170
原创 Activity与Fragment生命周期探讨
一.Activity生命周期探讨图1.Activity生命周期其实这张图已经说明了activity的生命周期,但是在这里需要的注意的是,(1)onCreat是activity正在被创建,也就是说此时的UI操作不会更新UI,比如setText操作,所以此时在子线程调用setText不会报线程错误。详解可见Android子线程更新View的探索,在这个方法内我们可以做一些初始化工作。(2)onRest...
2018-05-16 14:13:49
392
转载 Android内存优化-内存泄漏的几个场景以及解决方式
一.什么是内存泄漏在Java程序中,如果一个对象没有利用价值了,正常情况下gc是会对其进行回收的,但是此时仍然有其他引用指向这个活在堆内存中的对象,那么gc就不会认为这个对象是一个垃圾,那么就不会对其进行回收,所以它会一直活在堆内存中占用内存,这就导致了内存泄漏。总结一下,导致内存泄漏的原因就是有一些我们永远不会使用的对象,仍然有引用指向它(当然这是在强引用的情况下),那么就不满足gc回收的条件,...
2018-05-08 18:13:03
237
转载 Android 进程间通信的几种实现方式
一、概述 由于应用程序之间不能共享内存。在不同应用程序之间交互数据(跨进程通讯),在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Content Provider可以...
2018-05-08 18:10:24
20695
转载 MVC与MVP架构特点与区别-android
> MVC/MVP View强依赖于Model是MVC的主要问题。由此导致很多控件都是根据业务定制,从Android的角度来看,原本可以由一个通用的layout就能实现的控件,由于要绑定实体模型,现在必须要自定义控件,这导致出现大量不必要的重复代码。因此有必要将View和Model进行解耦,而MVP的主要思想就是解耦View和Model。由此引入MVP就显得很自然。TheMVP- http...
2018-05-08 18:04:31
203
转载 教你认清MVC,MVP和MVVM三种模式
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候想用MVP的,代码写着写着就变成了MVC,久而久之就对它们三个的选择产生了恐惧感,如果你也是这样的人群,那么这篇文章可能会对你有很大的帮助,希望大家看完都会有收获吧!文章重点:(1)了解并区分MVC,...
2018-05-08 18:03:52
303
转载 Redis简介以及和其他缓存数据库的区别
相关文章:Centos7.0 安装Redis 3.2.1详细过程和使用常见问题Redis简介Redis 是一个开源的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(Strings),散列(Hashes),列表(Lists),集合(Sets),有序集合(Sorted Sets或者是ZSet) 与范围查询, Bitmaps,Hyperloglogs 和...
2018-05-08 18:01:10
135
原创 MyBatis 和 Hibernate 的相同和不同处,以及实用场景
Mybatis技术特点:1、 通过直接编写SQL语句,可以直接对SQL进行性能的优化;2、 学习门槛低,学习成本低。只要有SQL基础,就可以学习mybatis,而且很容易上手;3、 由于直接编写SQL语句,所以灵活多变,代码维护性更好。4、 不能支持数据库无关性,即数据库发生变更,要写多套代码进行支持,移植性不好。5、 需要编写结果映射。Hibernate技术特点:1、 标准的orm框架...
2018-04-26 10:05:48
463
原创 **Tcp/Ip ** 了解一下
其实tcp/ip都是网络协议,有一个OSI模型,总共有7层,ip在网络层,tcp在传输层,udp也是。网络层是分割和重新组合数据包Packet,基于网络层地址(IP地址)进行不同网络系统间的路径选择,传输层把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。在xxx项目开发聊天功能时用到socket聊天,有用到tcp/udp这样的协议。在项目开发中用的最多的还是http/...
2018-04-24 13:56:48
157
转载 内存溢出和内存泄漏的区别、产生原因以及解决方案
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致out...
2018-03-06 10:27:08
1407
翻译 OOm是否可以try catch
只有在一种情况下,这样做是可行的:在try语句中声明了很大的对象,导致OOM,并且可以确认OOM是由try语句中的对象声明导致的,那么在catch语句中,可以释放掉这些对象,解决OOM的问题,继续执行剩余语句。但是这通常不是合适的做法。Java中管理内存除了显式地catch OOM之外还有更多有效的方法:比如SoftReference, WeakReference, 硬盘缓存等。在JVM用光内存之...
2018-03-06 10:25:24
7853
转载 Bitmap使用时候注意什么?
1. 使用decodeStream获取Bitmap ImageView.setImageBitmap、ImageView.setImageResource、BitmapFactory.decodeResource: 通过Java层的createBitmap完成,消耗更多内存 BitmapFactory.decodeStream: JNI >> nativeDecodeAsset...
2018-03-06 10:23:38
1492
转载 个人认为比较不错的文章汇总
最近看了很多技术博客,把一些写的很好的文章推荐给大家,如果里面有自己的或看过的,可以在评论区里评论哦:【成长感悟类】程序员5年成长之路:http://blog.csdn.net/lgg201/article/details/8637763了凡四训感悟:http://blog.csdn.net/aa6408323/article/details/53445107回答阿
2017-02-16 17:08:51
362
原创 Androidhttp请求加密机制详解
Android开发中,难免会遇到需要加解密一些数据内容存到本地文件、或者通过网络传输到其他服务器和设备的问题,但并不是使用了加密就绝对安全了,如果加密函数使用不正确,加密数据很容易受到逆向破解攻击。还有很多开发者没有意识到的加密算法的问题。1、需要了解的基本概念 密码学的三大作用:加密( Encryption)、认证(Authentication),鉴定(Identif
2016-11-09 11:59:33
12179
3
原创 Android 动画总结
在日常的Android开发中,经常会使用到动画,这里就对Android开发中的动画做一下总结。Android 动画分类总的来说,Android动画可以分为两类,最初的传统动画和Android3.0 之后出现的属性动画;传统动画又包括 帧动画(Frame Animation)和补间动画(Tweened Animation)。传统动画帧动画帧动画是最容易实现
2016-10-26 17:56:19
1416
1
原创 你还在用notifyDataSetChanged?
帖子中讲述的项目使用了listView这个控件,而且自定义了adapter。在更新item的进度条时发现每次使用notifyDataSetChanged(),都会去调用自定义adapter中的getView方法。这时问题就出现了,用notifyDataSetChanged方法去更新listView中的item,是更新需要更新的Item呢?还是更新所有的item呢?如果是更新所有的item那么效率不
2015-08-14 16:40:01
548
原创 Android源码之陌陌源码
本源码是一个老版本的陌陌源码,翻了翻代码,发现有完整的登陆注册功能(基于本地)其余都是静态页面。有需要的朋友可以拿去研究一下。其中登陆账号是86930007密码为123456。源码地址:http://dwz.cn/wVmA0
2015-08-14 16:37:35
774
转载 ViewDragHelper详解
2013年谷歌i/o大会上介绍了两个新的layout: SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用,其实研究他们的源码你会发现这两个类都运用了ViewDragHelper来处理拖动。ViewDragHelper是framework中不为人知却非常有用的一个工具。ViewDragHelper解决了android中手势处理过于复杂的问题,在Drawe
2015-08-14 16:35:09
517
原创 HttpClient使用详解
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会
2014-12-15 14:07:28
468
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人