自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lewis的专栏

成长之路

  • 博客(62)
  • 资源 (6)
  • 收藏
  • 关注

原创 Handler原理

文章目录引言原理总结源码Handler部分Looper部分Message部分MessageQueue部分感谢读者告诫自己引言Handler是Android中线程间通信的一种机制,它在APP的整个生命周期过程中都发挥着重要的作用,是Android中最重要的机制之一。无论是初中高级程序员,它都是面试必问项。同时它也是基础中的基础,必须掌握。原理总结Handler消息通信过程中主要涉及以下几个对象:Handler、Looper、Message、MessageQueueHandler主要负责消息的发送

2022-05-15 17:02:31 437

原创 Connect to 127.0.0.1:1080 [/127.0.0.1] failed: Connection refused

Android Studio sync project的时候遇到Connect to 127.0.0.1:1080 [/127.0.0.1] failed: Connection refused这个问题,我没开代理啊,为啥会这样(这是之前开过代理之后出现的,没开代理的时候什么毛病都没有)。在项目里查看选择的是no proxy没错,gradle.properties里也没有设置代理相关的东西,那是什么原因呢?上网查资料看到有人说在用户目录下的.gradle文件夹里面还有一个gradle.properties

2020-05-19 16:05:38 2944

原创 Linux常用命令整理

下面是一些常用Linux命令及其含义,方便查阅命令含义ls列出目录内容,可能是文件也可能是文件夹ls -l详情模式列出文件夹的内容ls -a列出文件夹里的所有内容,包括以.开头的隐藏文件lsblk以树状格式列出块设备lsblk -l以列表格式显示块设备md5sum计算和检验MD5签名uname显示机器名,操作系统和内核的详细信...

2020-03-14 17:06:03 407

原创 HashMap源码分析

这次我们还是从HashMap的构造方法入手,通过几个重要的方法来一步步深入HashMap的源码。在介绍构造方法之前先看一下几个比较重要的常量。1.常量 //默认初始容量 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //最大容量 static final int MAXIMUM_CA...

2020-03-09 12:07:02 235

原创 Toast源码分析

源码分析系列这是第一篇,统一在此说明一下,以后的文章就不做说明了。写这写文章只是个人见解分析,当然最重要的是自我感觉源码阅读方面有所欠缺,也想通过这种方式培养一下自己阅读源码的习惯,记录一下当时的理解。如果能收集到一些好的建议和理解那就更好了。以Toast源码开始是因为Toast源码简单,容易理解,由易到难需要一个过程。构造方法我们从最简单的使用开始入手Toast.makeText(cont...

2020-02-24 10:05:02 318

原创 刘海屏适配总结

0.刘海屏这儿的刘海屏统一指挖孔屏、凹凸屏等有一部分不能显示内容的区域的屏幕1.刘海屏适配1.1刘海屏的类型自从iPhone X以后,Android各大厂商都在跟风刘海屏,先不管它的好看与否,这都是android开发者迈不过去的一道坎,由于android设备类型太多,也造成了刘海屏的不同类型,大致如下图所示最后一种没有见过,暂时不去管它。为了防止全屏显示时布局的遮挡及提供给用户更好的屏...

2020-02-12 12:50:11 4374

原创 下载图片或视频同步到手机相册

记录之前用的是下面的代码Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);intent.setData(Uri.fromFile(myCaptureFile ));sendBroadcast(intent);//发送一个广播发现在某些手机上不好使,然后通过查找资料替换为下面的代码MediaScanner...

2020-02-10 17:04:52 770

转载 FFMPEG 配置选项详细说明

转自https://blog.csdn.net/z2066411585/article/details/81239446记录下ffmpeg编译参数说明,英文的可以用ffmpeg --help查看帮助选项: --help 打印此消息 --quiet 抑制显示信息输出 --list-decoders 显示所有可用的解码器 --list-encoders 显示所有可用的编码器 ...

2020-01-19 15:32:47 2607

原创 FFmpeg处理音视频命令汇总

在学习及使用的过程中用到的命令记录一下,方便查找视频裁剪ffmpeg -i input.mp4 -ss 开始时间 -t 持续时间 -vcodec copy -acodec copy -preset superfast output.mp4音视频分离获取视频轨道 ffmpeg -i input.mp4 -an -vcodec copy output.mp4获取音频轨道 ffmpeg -i...

2019-05-30 19:20:35 4242 1

原创 FFmpeg编译过程错误记录

1、 编译动态库时出现 fatal error: ‘string’ file not found,给出的报错位置如下图找了好久都没找到解决办法,因为之前是可以编译成功的,可能是某个地方改变了,后来无意间看到一个回答说是需要让Android NDK支持STL,原文地址。解决:在Application.mk文件中添加一行 APP_STL := stlport_static2、...

2019-05-06 16:44:12 1916 1

原创 Android音视频开发入门(九)

MediaCodec视频硬解任务目标流程介绍代码实现任务目标通过MediaCodec API实现视频的硬解流程介绍本例采用的视频格式为mp4,先把mp4格式的视频解码,然后通过SurfaceView进行播放。具体流程如下:初始化SurfaceView,并实现SurfaceHolder.Callback接口创建 MediaExtractor,设置视频源,通过MediaExtractor...

2019-03-29 14:28:38 503

原创 Android音视频开发入门(八)

MediaCodec音频AAC硬编、硬解任务目标MediaCodec API原理介绍代码实现任务目标学习 MediaCodec API,完成音频 AAC 硬编、硬解MediaCodec APIMediaCodec API的学习在之前一篇文章已经记录,请参考这儿,虽然翻译的不太好,但是一定要结合英文去认真看一下API(英文好的就不要听我说了)。原理介绍本文是以mp3为例,过程:MP3-&amp;amp;...

2019-03-19 19:24:48 548

原创 MediaCodec API笔记

MediaCodec介绍MediaCodec类可以访问低级的媒体编解码器,即编码器/解码器组件。

2019-03-12 09:34:22 1222

原创 Android音视频开发入门(七)

任务目标学习 Android 平台 OpenGL ES API,学习纹理绘制,能够使用 OpenGL 显示一张图片纹理介绍

2019-02-25 09:26:49 2902 1

原创 Android音视频开发入门(六)

使用OpenGL ES绘制三角形1.任务目标2.OpenGL ES 基本介绍3.OpenGL ES 使用3.1 GLSurfaceView3.2 GLSurfaceView.Renderer4.OpenGL ES 绘制图形4.1 构建OpenGL ES 环境4.1.1 在Manifest中声明OpenGL ES使用4.1.2 创建一个Activity 展示OpenGL ES 图形4.1.3 构建 ...

2019-02-18 19:40:54 1387

原创 Android音视频开发入门(五)

任务目标使用MediaExtractor和MediaMuxer API解析和封装Mp4文件MediaExtractor这两个API相对来说内容很少,具体请参考MediaExtractor官方文档。文档给了一个简单的示例,如下:MediaExtractor extractor = new MediaExtractor(); extractor.setDataSource(...); in...

2019-02-13 18:52:09 3410

原创 Android音视频开发入门(四)

Android音视频开发入门(四)任务目标NV21简单介绍对camera2 API中的类的简单说明CameraManagerCameraDeviceCaptureRequestCameraCaptureSession实现过程1.首先创建一个执行Camera的线程和Handler2.获取相机的cameraId和预览尺寸3.打开摄像头4.实现mStateCallback监听5.设置ImageReade...

2019-01-29 20:12:03 10255 1

原创 Camera API笔记

说明最近在学习音视频相关知识,把一些需要注意的点记录一下方便后续查阅,可能有些翻译不准确,如有错误欢迎指正,后面不再说明。以下内容都是摘自官方API文档。正文如果要访问设备的相机,首先要添加Manifest.permission.CAMERA权限,如果是6.0以上不要忘记权限申请,还有就是要包含 清单元素声明在你的应用中使用的相机功能。例如,你使用了相机及自动对焦功能,你的清单文件应该包含...

2019-01-28 14:28:54 341

原创 Android音视频开发入门(三)

任务目标用AudioRecord采集PCM数据到SDCard,并用AudioTrack播放采集的PCM数据,最后实现读写wav文件。AudioRecord采集PCM数据AudioRecord可以记录从硬件设备输入的音频,生成PCM格式的音频数据。有三个读取数据的方法可以选择read(byte[], int, int), read(short[], int, int) 或 read(ByteB...

2019-01-25 15:32:59 1650 3

原创 Android音视频开发入门(二)

目标一:在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 ViewImageView绘制图片,因为ImageView是Android的控件,所以不管是在xml中还是用java代码都是比较好实现的,用setImageResource、setImageBitmap、setImageDrawable、setBackGround等...

2019-01-22 19:58:09 728

原创 音视频基础知识整理

音频编码常见的音频编码格式主要有AAC、MP3、WMA、AC3等- AAC: AAC,全称Advanced Audio Coding,是一种专为声音数据设计的文件压缩格式。与MP3不同,它采用了全新的算法进行编码,更加高效,具有更高的“性价比”。利用AAC格式,可使人感觉声音质量没有明显降低的前提下,更加小巧。苹果ipod、诺基亚手机支持AAC格式的音频文件。优点是相对于mp3,AAC格式的音...

2019-01-22 17:52:57 12692 1

原创 Android音视频开发入门(一)

前言最近公司有需求要做一个视频编辑的功能,陆陆续续查了很多资料,因为之前没有接触过这一领域,开始是想用Android自带的API来实现,但是过了一个星期后,通过参考别人的范例写了一个视频裁剪的demo,各种问题,这一周基本就用来查找怎么去解决这些问题了,但是结果很现实,仍然不知道怎么去解决这些问题。突然发现如果还是这样继续下去的话,就算功能勉强实现了,当出现另一个问题后还是不知道怎么去快速解决。...

2019-01-22 11:15:17 12962 2

原创 Ubuntu杀死进程

在用ubuntu的时候遇到几次程序卡死,但是不知道怎么关闭,心想有没有跟window一样的程序管理器存在?所以就去网上找了下解决方式记录一下:1、打开系统监视器:gnome-ststem-monitor然后就可以选择进程结束掉啦。2、如果知道程序名称可以命令杀死:killall XXX杀掉所有的进程kill xxx(PID)杀死进程号xxx的进程,查看所有运行进程的命令:ps -aux...

2019-01-02 20:05:11 7422 1

原创 Android Studio显示找不到mips64el-linux-android-strip

运行项目报错显示找不到mips64el-linux-android-strip文件,我什么也没改啊,懵逼了一下午,最后查找资料,找人问。可能是跟NDK版本太高有关,r17平台支持发生了改变。特此记录一下 解决:把现在使用的ndk删除,下载一个之前版本的ndk解压并移入sdk/ndk-bundle文件夹下。...

2018-05-23 17:17:15 1758

原创 Fetch failed: ssh variant 'simple' does not support setting port

用Android Studio pull代码的时候出现Fetch failed: ssh variant ‘simple’ does not support setting port。 有两种方式解决: 1、在git bash中输入如下代码git config --global ssh.variant ssh2、git版本太高导致的,给git降级,重新下载一个低版本的Git覆盖安装...

2018-05-09 15:30:12 1840

原创 Android Studio集成CheckStyle

&nbsp;&nbsp;&nbsp;&nbsp;CheckStyle是一种Java代码规范检查工具,它遵循google的java编码规范及sun的代码规范,并且是高度可配置的,可自定义自己的代码规范。它可以通过插件和gradle脚本两种方式来实现。配置好CheckStyle的gradle脚本后,通过gradle task就可以输出html或者xml的扫描结果;而插件方式相比于gradle脚本的方式...

2018-04-28 17:22:23 3296 1

原创 git stash暂存修改

有时候你正在写代码,写到一半的时候需要切到另一个分支修改一个bug,这时直接切换分支是不行的,会提示让你先提交修改或者暂存起来。代码写到一半显然不能直接提交到仓库,这时候就需要用到git stash命令了,命令如下: git stash // 把当前进度保存到暂存区 再输入命令git status 就会告诉你nothing to commit,这时我们就可以正常切换分支了,在另一个分支修改完成之

2018-04-26 14:41:12 1755

原创 百度地图问题记录

1. 百度地图初始化失败,代码只写了这一句SDKInitializer.initialize(getApplicationContext()),一直报空指针错误,具体如下:Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Stringandroid.os.Bundle....

2018-04-10 11:12:38 887

原创 在 Terminal 中使用 gradle,报 ‘gradle’ 不是内部或者外部命令,也不是可运行的程序或批处理程序

在 Terminal 中使用 gradle,报 ‘gradle’ 不是内部或者外部命令,也不是可运行的程序。 什么鬼,之前还好用。心想可能是新建项目的时候使用的gradle版本跟之前的不一样?好吧重新配置一下gradle的环境变量。新建GRADLE_HOME然后在系统变量的Path里添加%GRADLE_HOME%\bin;,为啥还是不好使?仍然报同样的错误。无奈,现在直接把gradle的全路...

2018-04-09 11:28:48 6443 8

原创 EditText被遮挡底部问题

遇到EditText被软件盘遮挡底部一部分的问题,能显示文字但是EditText被遮挡了一部分,解决方式记录下 1、EditText高度改成wrap_content,利用padding扩展EditText高度 2、利用windowSoftInputMode配合ScrollView解决 3、自定义EditText layerlist布局解决 4、监听View的高度变化,改变布局...

2018-03-29 11:59:27 1387

原创 调用系统相机拍照出现java.lang.SecurityException:

具体问题: java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera/.Camera clip={text/uri-list U:content://media/external/im...

2018-03-28 18:57:01 5163

原创 FragmentPagerAdapter与FragmentStatePagerAdapter区别?

简单记录下两者的区别 FragmentPagerAdapter对于生成的没一个Fragment都会保存在内存当中,适用于页面内容相对固定,数量也较少的情况。对于不需要的fragment,FragmentPagerAdapter会调用事务的detach(Fragment)方法,而不是remove(Fragment)方法,所以FragmentPagerAdapter只是销毁了fragment的视图,...

2018-03-08 11:03:11 1352

原创 方法和类被调用多次,但是AS显示灰色

碰到一个问题,Android Studio里面的一些类及方法,明明有被其他的类或者方法调用,但是去看的时候显示灰色,鼠标放上面的时候显示:Class ‘XXX’ is never used或者Method ‘XXX’ is never used,而且运行的时候毫无问题。显示如下: clean Project无效 解决方法:File—>Invalidate Caches/Restart 如下

2018-02-02 18:17:44 1476

转载 DecimalFormat格式化小数点变逗号问题

原因:发现在做项目的国际化任务时,用DecimalFormat格式化后的小数点变为逗号了,经过调研发现不少欧洲国家就是这样表示的,例如德国,法国等,还有其他一些小语种也会出现小数点变逗号的问题。 解决:手动去声明小数点为‘.’,看以下代码 DecimalFormat df = new DecimalFormat("##0.00"); DecimalFormatSymbols dfs

2018-01-26 21:38:47 7305 2

原创 Installation failed with message INSTALL_FAILED_TEST_ONLY:installPackageLI.

在真机运行代码的时候遇到了一个问题见下图: 网上找到的解决方式有以下几种:AndroidMainfest.xml中设置了apk属性为testOnly.只要去除android:testOnly属性或者将该属性值设置为false即可gradle版本为测试版本,非稳定版本,这时只需要把gradle版本修改为稳定版本即可adb install -t *.apk但是以上第一及第二种都不

2018-01-26 21:04:40 1375

原创 收集一些好玩的注释,HAVE FUN!!!

收集一些好玩有趣的注释,仅娱乐用!!!如果有重复及格式错误问题请自行略过。 一个传送门,我们可以自己用图片制作有趣的注释;以及一个Github的分享也可以用图片制作。还有一个好玩的网站Asciiworld,里面也有很多好玩的符号注释,自己去玩吧。 // __ // __ (__`\ //(__`\ \\`\ // `\\`\ \\ \

2018-01-02 12:15:52 4854 1

原创 Android开发的一些好的习惯(整理)

能用Float.valueOf(x)之类的获取值就不要新建对象(new Float(x))如果不考虑线程安全使用StringBuilder代替StringBufferif{}else{}超过三个的时候用switch代替使用增强for循环代替普通的for循环,除非对象是ArrayList之类的用普通for循环更好如果根布局是FrameLayout并且没有背景可以用标签减少嵌套,但是注意两点:

2017-12-27 15:57:27 342

原创 Android面试题整理(2)

Handler消息机制 (1)android的消息机制——Handler机制 (2)Android异步消息处理机制完全解析,带你从源码的角度彻底理解Handler内存泄漏 Android App 内存泄露之HandlerJava内存模型 (1)全面理解Java内存模型 (2)Java内存模型及GC原理 (3)深入理解Java内存模型(一)——基础Java内存划分 (1)JVM的

2017-12-05 17:31:41 430 1

原创 Android内存优化整理

看了好多内存优化方面的博文,整理一下做个记录,不时的翻看一下才能形成习惯。   总体来说内存优化就是代码布局的优化,细分的话又可以分为上图左边的四种情况,然后其他的没有标号的其实都可以归纳到这四种情况当中,只不过可能会有拆分,所以就单独拿出来了。具体请看下图   有一些备注也比较重要,没办法截图,请看详情连接。如果有什么不足的欢迎拍砖。

2017-11-27 18:40:12 340

原创 Android面试题整理(1)

String、StringBuffer、StringBuilder区别? (1)http://xieke90.iteye.com/blog/2310032 (2)https://www.cnblogs.com/duange/p/6136782.htmlArrayList与LinkedList区别 java集合框架05——ArrayList和LinkedList的区别各算法时间复杂度和空间

2017-11-16 23:33:43 490 1

FaceBookShare

一个简单的facebook分享案例,跳了不少坑,希望对需要的人有用,没用任何第三方

2016-08-01

简单Toolbar的使用

简单的使用了一下v7包的toolbar,支持5.0以下,图片有点大没做修改,仅作参考。

2015-06-15

listview gridview 上拉加载 下拉刷新 包含6个demo

各种上拉加载下拉刷新的实现,有的资源别的地方下载分很高,这个多个demo压缩成了一个,每个一分不多吧 分享一下 应该满足你们的各种需求

2014-11-11

自定义listview的上拉刷新下拉加载

多方搜集 这个功能还比较不错 有修改 直接就能用

2014-10-24

有点类似网易新闻的栏目设置功能

这个功能与网易新闻4.0版本的栏目设置类似,比其功能少简单,一般就可以满足,有兴趣的可以看

2014-09-28

高仿网易新闻具有大部分功能

具有网易新闻大部分功能 效果很好 我自己用过很有帮助 尤其对初学者有很好的帮助 学习的东西比较多

2014-09-20

空空如也

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

TA关注的人

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