android端
文章平均质量分 76
别碰我的IDEA
送你一篇博客,获取知识源泉!
展开
-
andorid 录制视频如何取第一帧做视频封面,给大家分享一下!!!
代码如下:public class BitmapAndFileUtils { /** * 获取视频的缩略图 * 先通过ThumbnailUtils来创建一个视频的缩略图,然后再利用ThumbnailUtils来生成指定大小的缩略图。 * 如果想要的缩略图的宽和高都小于MICRO_KIND,则类型要使用MICRO_KIND作为kind的值,这样会节省内存。 * * @param videoPath 视频的路径 * @return 指定大原创 2020-12-08 17:20:55 · 832 阅读 · 0 评论 -
内存泄漏如何优化,看了这篇博客,你会处理的游刃有余!!!
简言: 我们在开发中,会很容易导致app的内存泄漏,那么什么是内存泄漏,我们要如何解决,有何进行内存泄漏的优化那?1.什么是内存泄漏?如果一个对象在不被需要时还在被其他对象引用,导致该对象无法被回收,导致该对象无法被释放造成空间内存的浪费,这种情况就是内存泄漏。2.我们常见的内存泄漏有哪些那?1) 静态变量导致的内存泄漏:静态变量存储在方法区,它的生命周期从类加载开始到结束。一旦静态变量初始化后,它所持有的引用只有等到进程结束才会释放。静态持有很多时候都有可能因为其使...原创 2020-11-04 15:56:25 · 1142 阅读 · 0 评论 -
Gradle配置多渠道打包详解,让你不再担心多渠道打包!!!
简言: 最近一直没有更新博客,因为刚刚换了工作,新工作任务较多,导致一直没有更新博客,换了一个新的环境,接触的知识也变得更多了,之前一直做公司自己的线下产品,如何多渠道打包忘的差不多了,最近新公司项目上线,又得重新整理这个知识点,正好分享一下,如何用Gradle配置多渠道打包,(现在公司项目好多啊,表示好累啊!!!)下面分享一下通过Gradle打包的详细步骤:1.配置Debug的生产签名,方便调试 // 配置Debug的生产签名,方便调试 signingConfigs...原创 2020-11-04 15:01:16 · 2625 阅读 · 1 评论 -
关于算法和数据结构的整理,让你面对面试从容不破(四)
简言: 我们今天讲一下排序,现在的博客关于排序的太多太多,大多数都是大同小异,当然我这个也是一样的,因为在怎么讲解它的核心思想不会变,大部分编程语言中,也都提供了排序函数。在平常的项目中,我们也经常会用到排序。排序算法太多了,有很多可能你连名字都没听说过,比如猴子排序、睡眠排序、面条排序等。我只讲众多排序算法中的一小撮,也是最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。1.排序算法的执行效率1)最好情况、最坏情况、平均情况时间复杂度...原创 2020-07-01 09:10:35 · 1873 阅读 · 0 评论 -
关于算法和数据结构的整理,让你面对面试从容不破(三)
简言: 我们知道,CPU 资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致 CPU 频繁切换,处理性能下降。所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设置的。当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?是拒绝请求还是排队请求?各种处理策略又是怎么实现的呢?实际上,这些问题并不复杂,其底层的数据结构就是我们今天要学的内容,队列(queue)。1. 我们如何理解队列那?其...原创 2020-06-28 09:44:48 · 1965 阅读 · 0 评论 -
关于算法和数据结构的整理,让你面对面试从容不破(二)
今天我们主要讲一下“栈”这种数据结构,那我们如何理解“栈”?关于栈,就是一摞叠在一起的盘子。我们平时放盘子的时候,都是从下往上一个一个放;取的时候,我们也是从上往下一个一个地依次取,不能从中间任意抽出。后进者先出,先进者后出,这就是典型的“栈”结构。从栈的操作特性上来看,栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。这种数据结构,相比数组和链表,栈带给我的只有限制,并没有任何优势。那我直接使用数组或者链表不就好了吗?为什么还要用这个“操作受限”的“栈”呢?从功能上来说,数组...原创 2020-06-24 09:18:01 · 2118 阅读 · 0 评论 -
关于算法和数据结构的整理,让你面对面试从容不破(一)
简言: android随着技术的成熟,面试越来越困难,再也不是你会一个TextView就能找到工作的时候了,你现在不单单要会开发,还需要了解源码,以及java的基础,这些你注意不到的知识点有可能就是面试官给你的一个完美打击的地方,所以现在想要找到一个好的offer,就需要你了解更多的东西,现在android面试最容易被问到的就是算法和数据结构以及java的基础,所以为大家整理一套关于算法和数据结构的知识点。 一.数组 我们首先从数组开始: 在每一种...原创 2020-06-23 10:37:09 · 2307 阅读 · 0 评论 -
EventBus内部是如何实现的? 让我们爱不释手
简言:相信大家都使用过EventBus,用起来真的是奥利给啊,使用简单,开销还小,这种异步框架真的是让人爱不释手啊,当然了,有一大部分人更加喜欢Rxjava这个框架,毕竟这个框架更NB, 但是今天得主角不是Rxjava,是EventBus,带大家看看他的内部实现是什么?当然在讲源码之前,还是先介绍一下EventBus,我保证,只是介绍啊, 毕竟我也不想啰嗦。。。1.简介EvenBus是一...原创 2020-04-03 11:10:46 · 6503 阅读 · 0 评论 -
你真的懂了Glide图片框架了吗?它来了,它来了,它带着资源走来了...
简言: 之前写过关于Glide的文章,都是一些如何使用的案例,比较注重使用了,没有考虑它的源码是如何实现的,今天为大家讲解一下源码,从源码的角度让你了解Glide这个神奇的图片框架。1.Gilde 简介在泰国举行的谷歌发布者论坛上,谷歌为我们介绍了一个叫Gilde的图片加载库,作者是bumptech。这个库被广泛的运用在goole的开源项目中,包括2014年goole ...原创 2020-03-31 13:26:04 · 7820 阅读 · 0 评论 -
你真的了解BlockCanary了吗?让我带你走进源码,深入了解BlockCanary的实现原理与使用
这次疫情还没有过去,但是生活依旧,还是要工作,还是要挣钱,在这里多的话不说,“武汉加油!”闲言少叙,我们直接走入主题,我们在开发复杂项目的时候,代码的迭代,修改等,都会出现UI卡顿,或者出现ANR的时候,造成的程序崩溃,等,我们如何定位到卡顿的位置等,所以国内开发者,给我送来一个福利,BlockCanary这个框架。1.介绍 BlockCanaryBlockCanary 这个框架是andr...原创 2020-03-02 13:49:46 · 10032 阅读 · 1 评论 -
你还停留在使用Dagger2吗? 带你一步一步走进Dagger2的世界
Dagger2是一个依赖注入框架1.什么是依赖注入?就是目标类中所依赖的其他的类的初始化过程,不是通过手动编码的方式创建将其他的类初始化好的实例自动注入到我们的目标类当中。它也是面向对象的一种设计模式,主要作用就是降低我们程序的耦合。讲述两个场景来描述一下Dagger2:1.在一个对象里创建另一个对象的实例。这种行为就会产生耦合现象。导致代码难以维护。2.Picasso...原创 2020-01-22 15:04:32 · 21424 阅读 · 1 评论 -
深入剖析你不知道的Retrofit网络请求神器(三)
我们继续上一篇的源码分析:https://blog.csdn.net/wk_beicai/article/details/104048326总结RxJavaCallAdapterFactory理论上: 我们获取一个Call<T> 对象,用这个Call对象执行具体的Http请求,Retrofit调用这个Call请求,其实还是调用okHttp中的call请求,只不过对其进行封装...原创 2020-01-20 15:07:04 · 19638 阅读 · 1 评论 -
深入剖析你不知道的Retrofit网络请求神器(二)
上一篇文章讲解Retrofit使用过程:https://blog.csdn.net/wk_beicai/article/details/104030451接下来讲解通过源码分析,它的Builder整个过程:点击Retrofit查看源码:首先是这七个重要的成员变量:serviceMethodCache:用于缓存的,存储一些网络请求的配置,网络请求的方法,网络请求的适配器等...原创 2020-01-20 10:22:27 · 18233 阅读 · 0 评论 -
深入剖析你不知道的Retrofit网络请求神器(一)
前言:android网络请求,目前使用最多的应该就是Retrofit了,之前的volley,xUtils3,okHttp,很快将会变为过去时,(个人认为)但是之前的框架就不好了吗,只是因为技术在不断的更新,每位技术大牛都喜欢追求更好的技术,所以它们也将会注定成为过去时,今天我主要讲解的就是Retrofit的使用,以及源码的剖析为大家更深入的了解Retrofit。1)Retrofit简介...原创 2020-01-18 15:25:43 · 16744 阅读 · 0 评论 -
1024 程序员节日快乐
2019-10-24 只有我们程序员的节日,虽然公司不放假,虽然啥礼品也没有,但是。。。转眼在csdn写博客已经三年了,自己学到很多,访问量也达到了31万,排名1万多,虽然自己还是差很多,但是我会继续努力,给大家带来更好的东西。在这三年里,虽然学习了很多除了android的知识,python,java后台,sql,但是感觉还是差很多。所以在接下来的时间,我会继续努力,首先主要的目的是把...原创 2019-10-24 15:34:52 · 3788 阅读 · 1 评论 -
recyclerView的使用以及上拉加载 下拉刷新
前言:在做项目的时候,对于列表是每一个项目必不可少的东西,我们之前的实现是通过listview与graidView来实现列表数据展示,当RecycleView 的出现,给程序猿增加了一个更好的列表知识点的探索,recycleView使用起来方便,样式种类多,不单一,使我们更好的追求,下面针对;RecycleView进行简单的讲解。1.RecycleView的简介:RecycleView是andro...原创 2018-05-17 11:32:24 · 4822 阅读 · 0 评论 -
ijkplayer打造完美视频播放器
1.ijkplayer简介ijkplayer是一个基于FFmpeg的轻量级Android/iOS视频播放器。FFmpeg的是全球领先的多媒体框架,能够解码,编码, 转码,复用,解复用,流,过滤器和播放大部分的视频格式。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从...原创 2019-05-15 09:38:56 · 7764 阅读 · 1 评论 -
Activity的启动模式
Activity的启动模式 Activityde LaunchMode : 首先说一说Activity为什么需要启动模式?当我们多次创建相同的一个activty时,系统会创建多个实例,一一的添加到任务栈中,当我们返回的时候,由于任务栈是先进后出,所以会一一的回退。所以面临的问题是,多次创建相同的acitivty系统就重复创建多个实例。1.四种模式standard...原创 2019-04-02 08:33:43 · 5070 阅读 · 0 评论 -
RecyclerView 购物车功能
前言: RecyclerView是android 最常见的列表控件,它现在几乎已经代替了listVIew和GridView的使用,RecyclerView自带强大的功能,实现多种样式,使用更加简单,封装也很容易,相对于listIView,RecyclerView没有自己的item点击事件,需要开发人员自行通过接口回调来实现点击事件,在近期工作不忙时,我查阅了一些开源的商城项目,写了一套很全...原创 2019-03-27 11:29:40 · 6429 阅读 · 4 评论 -
android 手势密码锁 GestureLock
前言:android 开发技术多如繁星,完全掌握非一日之功,开发涉及的深度难以想象,越走越难,金字塔顶尖上的人越来越少,今天得demo主要涉及的是自定义组件,很多时候,我们在网上找了太多资料,要么时代久远、要么表达不清、要么知识零碎、要么思路紊乱,随之而来的是不堪重负的挫败感和失落感,导致信心直线下降,而这些,正是我们面临的问题。demo样式展示: 1.简...原创 2019-03-30 14:52:25 · 6114 阅读 · 1 评论 -
android 常用控件的整理
一. 初级控件1.屏幕显示px:是手机屏幕上可显示的最小单位,同样尺寸的屏幕,越清晰,像素的密度越高,以px计量的分辨越大,dp : 只与屏幕的尺寸有关,同样尺寸的屏幕,dp的计量分辨率是一样的,sp: sp与dp差不多,sp用来设置文字的大小,当设置大字体时 sp会变大。dp和px之间的联系取决于具体设备上像素密度,密度就是DisplayMetrics里的density参数,当density=1...原创 2018-04-22 16:46:24 · 21442 阅读 · 0 评论 -
android 滑动冲突
在android开发中会经常遇到各种问题,比较常见之一就有滑动冲突问题,只要出现滑动冲突,demo或者项目就无法正常工作,那么问题是滑动冲突时怎么产生的,我们又应该如何解决这个滑动冲突问题那,其实在界面中只要内外两层同时可以滑动,这个时候就会产生滑动冲突,我们如何解决这个问题呢?这是一个简单又复杂的问题,简单因为滑动冲突有固定的解决办法,下面就分析一下滑动冲突,1.我们常见的滑动冲突场景...原创 2018-10-23 10:43:13 · 6629 阅读 · 2 评论 -
android so文件的兼容,以及架构的使用方法
简言:现在公司做的项目应用到地图,使用的是高德地图,按照高德地图的api进行集成,集成很简单,但是运行项目,发现apk体积非常庞大,在集成完导航之后,达到25M,项目整体增加了20M,这肯定不是公司想要的,最后查看,发现是so文件导致的, 1. 我们首先要了解的是android so文件,abi 和cpu的关系,推荐一篇博客: http://blog.csdn.net/xx32...原创 2018-08-22 09:15:37 · 24781 阅读 · 0 评论 -
图片加载Glide的使用以及简单封装
前言:在正式开发中,我们需要网络请求框架,Glide是最好的选择相对于开发者,我们在开发中,解决图片的问题,使用Glide来进行解决显示。1. Glide的简介在泰国矩形的谷歌发布者论坛上,谷歌为我们介绍了一个叫Glide的图片加载库,作者是bumptech。这个库的运用在Goole的开源项目中,包括2014年goole I/O大会发布的官方app.2. Glide的优点1)使用简单2)可支配度高...原创 2018-05-22 10:12:46 · 731 阅读 · 0 评论 -
retrofit + RXjava 网络解析(网络解析封装)
前言:android 的网络解析发展史不断的在更新,HttpClient & HttpURLConnection & Volley & OkHttp & retrofit + RXjava现在市场上很火的是retrofrt+RXjava 网络请求框架;功能强大,简单易用,下面会简单的介绍下retrofrt + Rxjava, 以及 你们关注的重点,封...原创 2018-05-18 11:51:50 · 658 阅读 · 0 评论 -
android 自定义圆形imageView
头叙:有的时候,android原生的控件满足不了我们项目中的需求,所以我们会针对原生的控件在进行一次升华,也就是我们说的自定义控件。eg: 每一个项目中都有imageView,但是原生的imageView是一个矩形,但是我们爱头像上传的时候,有可能需要圆形的头像,我们只能自定义控件,1.自定义控件1.1 如果我们要自定义ImageView, 首先继承ImageView(具体代码,在下面会赘述,简单...原创 2018-05-18 08:42:06 · 13594 阅读 · 0 评论 -
vivo X21 安装 Apk 失败问题
兼容了Android 8.0之后,所有手机安装Apk都没有问题,就唯独vivo X21这个机型会出现安装失败。初次推断以为是没有兼容全面屏的原因,兼容了一波OK后发现仍然不行,然后就去请教了度娘,经过一个小时的百度终于找到了解决方案。原因: vivo X21不支持安装debug版本的apk(网上有人这样说,经过验证,不假,在找答案的过程中,看到过很多吐槽:vivo x21不适合做测试机,因...转载 2019-05-23 13:31:42 · 5925 阅读 · 0 评论 -
Flutter开发之环境配置
原博客地址:https://github.com/AweiLoveAndroid/Flutter-learning第一次入坑Flutter,找了大佬的博客然后再添加了点自己遇到的坑,适合小白入门(应该是最详细的介绍了)。 首先简单介绍一下Flutter在Google I/O ’17上,Googl...翻译 2019-05-23 13:35:52 · 4904 阅读 · 0 评论 -
Gradle详情以及代码讲解
安卓开发的都会知道Gradle是什么?但是只是知道它是做什么的。对于初学者更不会去管内部代码的意思。想当初,自己也是那样,不知道Gradle里面的代码意义何在,在网上看大神的博客,也只能吸收三分之一,做过几个项目之后,不得不对Gradle进行解读了;原创 2017-11-01 23:01:03 · 943 阅读 · 0 评论 -
java动态规划,背包问题(解决最优选择方案)
简言:动态规划算法通常基于一个递推公式及一个或多个初始状态。当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度,因此它比回溯法、暴力法等要快许多。 解决动态规划问题的关键是要找到状态转移方程。将问题分解成最小的子问题,找到由子问题到全局问题的解决方案。 可以采用动态规划求解的问题的一般要具有3个性质: (1) 最优化原理:如果问题的最...原创 2019-10-11 14:32:22 · 18420 阅读 · 1 评论 -
android 自定义view(侧拉删除)
开心一刻:A:嘿 //是什么意思啊?B:嘿.A:呃我问你//是什么意思?B:问吧.A:我刚才不是问了么?B:啊?A:你再看看记录…B:看完了.A:……所以//是啥?B:所以什么?A:你存心耍我呢吧?B:没有啊你想问什么?……不断循环之后,A一气之下和B绝交,自己苦学程序。N年之后,A终于修成正果,回想起B,又把聊天记录翻出来看,这时,...原创 2019-08-29 11:09:19 · 11870 阅读 · 2 评论 -
android 自定义view,字母排序(仿微信好友列表)
一:简言一个月没有写博客了,公司项目比较忙,最近发现公司用到一个知识点,所以抽时间通过博客的形式分享给大家,该知识点,模仿微信的好友列表,通过字母索引进行定位,该功能主要通过几个知识点实现。下面会一一讲解。二:具体说下思路1 :整体用到的控件,list view(recyclerView原理一样),自定义view,汉字转拼音的utils工具类. 2:创建一个自定义类继承view,实现...原创 2019-08-29 10:26:04 · 13681 阅读 · 4 评论 -
完美简单的集成高德地图导航和语音播报功能
简介:公司的项目用到了高德的导航功能,所以自己总结了一下高德的导航,希望对大家有所帮助。该功能集成了高德的导航和讯飞的语音播报。集成步骤:1) 到高德地图官网,申请账号和KEY, 进行集成添加依赖,并且在app目录下的build,gradle文件中配置:2) 在清单文件中添加权限以及配置:这是配置的步骤。3) 功能的实现,废话少说,直接上代码;...原创 2019-07-31 13:48:02 · 16922 阅读 · 4 评论 -
android 最炫酷的效果(跳动的数字 《仿支付宝效果》)
效果图: 点击start将会从初始值 到结束值 以滚动的形式进行轮滚。(仿支付宝)1.创建思想:首先我们可以确定的是动画,这是一个动画,我们可以选择通过属性动画来进行实现;然后对这些数字进行约束,进行格式化,我会一步一步讲解实现步骤,2.实现过程:1) 首先这是一个文本,所以我们要自定义一个文本,ScrollingDigitalAnimation 继承 TextView...原创 2019-07-31 09:22:36 · 16829 阅读 · 1 评论 -
商米设备的集成(打印小票,刷卡功能)
简言:公司一直在做使用pos设备有关的项目,选用的是商米的商户,设备主要实现功能就是刷卡功能与打印小票功能,商家提供了一个简单的demo,刚开始就让人蒙圈, 查阅百度,各种博客,发现关于商米设备的很少,所以只能硬着头皮,看开发文档,一步一步实现了。1.设备我现在主要针对的设备是P1 4G的设备,既能刷卡功能,又有小票打印功能,v1设备只支持打印小票,2 .对于商米功能的简介...原创 2019-06-21 09:49:06 · 23517 阅读 · 7 评论 -
漫画:如何给女朋友解释什么是编译与反编译
本文经授权转载自漫话编程(ID:mhcoding)某天下班后,我在家里进行电话面试,问到面试者这样一个问题:"你知道使用哪些办法可以反编译Java代码吗?"。但是面试者回答的并不好,所以我在面试评价中写到:"对编译原理相关知识理解的不透彻"。这时,女朋友看到这句话。计算机语言计算机语言(Computer Language)指用于人与计算机之间通...转载 2019-06-05 09:09:16 · 1759 阅读 · 0 评论 -
异常处理 Error: java.util.concurrent.ExecutionException,Error: com.android.tools.aapt2.Aapt2Exception的解决
1.在将一个Eclipse的项目转移到AndroidStudio的过程中,碰到了的问题如下:Error:Execution failed for task ':learnChinese:mergeDebugResources'.> Error: java.util.concurrent.ExecutionException:com.android.ide.common.process....转载 2019-05-23 14:08:10 · 29659 阅读 · 1 评论 -
Dart学习之基础语法(二 方法函数)
先说下我学习Dart函数的感受吧,我尝试用java语言的形式去学习Dart,但是令我意外的是,我刚迈出第一步Dart就把我踢出门外。什么意思呢?比如说,在Java中我们可以重载函数,但是Dart它没有,再比如说返回值类型,在Java中我们必须特定的给出,不然Java编译器它不认识,但是Dart不一样,Dart我们可以不指定返回值类型。总之,就是感觉学起来特别的有意思,可能是因为Dart在不断的给我...翻译 2019-05-23 13:44:54 · 10348 阅读 · 0 评论 -
Dart学习之基础语法
原文地址:https://www.jianshu.com/p/3d927a7bf020承接上一篇我们搭建了Dart环境,这一篇我们将学习Dart的基础语法。 Dart的所有东西都是对象,包括数字,函数等。它们都继承自Object,默认是都是null(包括数字),所以数字,字符串都可以调用各种方法。...翻译 2019-05-23 13:40:15 · 1739 阅读 · 0 评论 -
android 线程下载之(断点续传)
简言:android 下载在开发中是非常常见的,下载一个视频,下载一个图片等等,我们本篇博客主要讲解 的是如何断点续传实现下载图片,apk等,开始躁动起来 1.什么是线程线程主要分为主线程:主要处理界面相关的事情, 子线程: 处理一些耗时操作2.都有哪些线程?线程除了Thread之外,还有asyncTask,Inter...原创 2019-06-26 14:29:55 · 6313 阅读 · 0 评论