自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 ios14 出现[__NSArrayM insertObject:atIndex:]: object cannot be nil奔溃

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'要是你在ios 14系统上调试突然出现这样的奔溃,很可能我们是遇到同样的问题了。出现这个奔溃的原因是在使用小菊花(UIActivityIndicatorView )的时候没有正确关闭动画。奔溃情况:[activityI

2020-09-22 18:16:36 1593

原创 YUV图像的常见格式(图示)

摘要在研究android Camera2 API的时候,涉及到采集视频的相关内容,其中,在采集视频的时候,可以设置多种类型格式的图像,其中一个就是yuv_420_888,如果需要进行编码压缩,我们还需要将该格式的数据转转想要的格式。本文记录一下,我所认知的几种常用的yuv数据格式。介绍YUV是一种颜色编码方法,是编译true-color颜色空间(color space)的种类,常使用在各个视频处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。其中的“Y”表示明亮度,也

2020-09-21 11:33:10 6283 7

原创 ArrayList的详解

ArrayList的详解ArrayList继承AbstractList,实现了List接口,在此记录几个重要的方法。方法介绍ArrayList()无参构造函数ArrayList(int initialCapacity)传入初始化空间大小ArrayList(Collection<? extends E> c)传入集合对象ArrayList()无参构造函数size()返回列表长度isEmpty()返回列表是否为空contains

2020-05-12 00:29:06 322

原创 ndk命令行编译so库

最近怀旧了一下经典,记录一下用NDK命令行编译so库的过程。[PS]自行安装好JDK,SDK,NDK,配置好环境变量,使能正常开发android应用.1.首先,写好你的源文件和Android.mk和Application.mk文件。2.打开cmd,切换到安装ndk的目录下。3.输入编译命令行。如下:ndk-build NDK_PROJECT_PATH=项目根目录  &nb...

2020-03-07 15:24:42 4787 2

原创 将本地项目上传到远程仓库(码云)

如果你和我一样,需要将本地项目上传到码云的私有仓库,那么1、 在码云上新建一个私有仓库假如你的这个仓库的名称为TestProject,且在这个仓库的目录下面,你也新建了一些文件。2、 在本地新建一个项目假如你新建的项目取名也为TestProject,并且你的这个项目下面也有一些初始化的文件。3、 建立本地仓库打开你的终端,切换到你项目工程的根目录下。3.1 初始化仓库,输入命令...

2019-06-28 17:30:33 1888 2

原创 更换苹果推送服务证书Apple Push Services Certificate

当苹果推送服务证书即将过期时,会收到过期提示Your Apple Push Services Certificate will no longer be valid in 30 days. To generate a new certificate, sign in and visit Certificates, Identifiers & Profiles.在此记录更换push证书的...

2019-06-19 18:15:13 7283 2

原创 android 开机启动桌面Activity(Launcher )的过程(一)

我们都知道android手机开机后会首先看到&quot;ANDROID&quot;启动页面,然后看到手机桌面,而手机桌面就是android机子启动的第一个Activity。那么android系统是如何启动这个HOME Activity的呢?借助前面博文《android zygote进程启动到SystemServer进程启动过程》我们知道,通电开机后会走到SystemServer.java的 run( ) 方法。...

2019-02-21 11:59:29 7430 2

原创 android createSystemContext()创建第一个上下文对象

在上一篇博文中分析了zygote进程到SystemServer进程的启动过程,在SystemServer的run()方法中将会调用createSystemContext() 方法初始化系统上下文对象,本篇将记录该方法创建上下文对象的过程。android zygote进程启动到SystemServer进程启动过程直接上代码private void createSystemContext() {...

2019-02-15 18:21:12 1808 2

原创 android zygote进程启动到SystemServer进程启动过程

首先,我们来看android手机启动过程图:&amp;amp;amp;lt;插入android手机启动流程图&amp;amp;amp;gt;android手机通电后,系统启动加载器会从ROM中加载引导程序到RAM,然后初始化硬件参数等必要资源,接着会加载Linux内核到RAM,Kernel接着会启动Init祖先进程,在Init进程中会解析init.rc等配置文件,接着就会开始启动zygote进程。我们直接从启动zygote的函数出发,探究...

2019-02-15 11:47:27 1297 4

原创 为什么不能在子线程中直接更新UI?

大家都知道,在子线程中直接更新UI就会奔溃,报错如下:android.view.ViewRootImpl$CalledFromWrongThreadException:Only the original thread that created a view hierarchy can touch its views.报错提示:只有创建了视图层次结构的原始线程才能访问它的视图。什么意思呢?...

2019-02-12 13:11:30 1303

原创 android Handler机制原理解析(一篇就够,包你形象而深刻)

首先,我将Handler相关的原理机制形象的描述为以下情景:Handler:快递员Message:包裹MessageQueue:快递仓储空间Looper:配送车某天,你想给朋友寄一件礼物,首先你会包裹好,下单加了某家的快递员上门取件,快递员揽收了你的包裹后,会将包裹送往站点的仓储空间,等待配送车送出你的包裹。等配送车来了,就按照你的包裹信息,送到指定地方站点,然后会有相应的快递员将你的包...

2019-01-16 18:01:08 38225 13

原创 mysql 删除最后一条记录

当遇到存储一定量的数据时,就需要做删除最后一条记录了语句:delete from table_name where id = (select id from table_name Limit count,1count的值是当前记录总条数。...

2018-11-28 17:39:20 11999 12

原创 android 开机启动过程

android 开机启动过程附上一个好东西:点击在线查看android各个版本的系统源码以上是我对android从按下电源键以后的开机启动过程的了解,若有不当之处,还望指教。...

2018-11-27 16:33:46 411

原创 java.io.IOException: unexpected end of stream on Connection{116.220.68.11:8006, proxy=DIRECT

当你通过URL请求服务器获取数据时,或许会遇到和我一样的问题java.io.IOException: unexpected end of stream on Connection{116.220.68.11:8006, proxy=DIRECT@ hostAddress=116.220.68.11 cipherSuite=none protocol=http/1.1} (recycl...

2018-08-29 10:58:52 17480

原创 Error:error: resource previously defined here. AAPT2 error: check logs for details

如果你遇到了以下的问题:说明你可能遇到跟我一样的问题了。AAPTAAPT是Android Asset Packaging Tool的缩写,即安卓文件打包工具。作用是将安卓资源文件编译成二进制文件。问题产生我在自定义View的时候,自定义了attr属性,添加了一个textColor的属性值,为的是接收文字颜色值。declare-styleable name="Ro

2018-01-24 23:01:18 28679 8

原创 Activity启动源码分析

背景今天一如既往的“啃食”源码,学习Activity的启动流程,startActivity( )这个方法我们经常使用到,但是系统是如何新建Activity并启动的呢?今天带着这个问题,一起来看源码吧!(本文源码API 25)开个小差,看完可能会身心不适应,最好准备一杯咖啡~为了便于阅读重点代码,其中会省略部分源码源码。

2017-10-27 17:14:19 920

原创 is not allowed to connect to this MySQL server

当你在java web中使用JDBC连接到MySql时,默认是准许用户通过localhost访问的,但是换成你主机的ip地址进行转换时,就不行了,这里提供一个修改数据库访问权限的方法。

2017-10-27 00:38:06 294

原创 Android Studio 如何引用aar包

在Android Studio 项目里面引入xxx.aar包,主要有以下几个步骤:将目标aar文件,例如lyx-library-1.0.3.aar文件,复制粘贴在工程的app/lib/目录下。在app目录下的build.gradle文件中添加以下代码:

2017-10-26 14:17:55 42077 1

原创 Android 轮播图(支持泛型数据源)

背景当下有很多关于轮播图的控件,由于发现它们的种种弊端,最终我自撸了一个,主要有以下优点:实现自动无限循环切换;当图片数量小于2时,手动切换时,不会出现空白页面; 支持点击事件;支持通过xml配置相关参数;最重要的一点,支持泛型数据源,通过注解配置和反射机制实现轮播效果。

2017-10-13 17:45:56 375

原创 Android 6.0权限的封装(一篇就够)

关于android 6.0权限封装的例子网上一堆,考虑到实际运用和用户体验,我还是亲自对权限进行了封装,个人认为更符合APP的操作习惯和体验性。

2017-06-02 15:00:22 476

原创 Android View事件分发机制

在开发中,我们经常需要自定义android组件,而事件的处理是最重要的部分之一,当手指按下,拖动和释放,都经历了什么事件的处理,会达到怎样的效果,当滑动冲突时,我们需要怎么去解决问题,通过对事件分发的了解,我想,对于上面的问题,你都能迎刃而解。

2017-04-26 15:35:45 284

原创 ActivityThread的main()方法简读

ActivityThread :在应用程序里面管理和执行主线程,调度和执行Activity,广播以及在Activity上的其他业务操作。

2017-04-20 14:18:32 2669

原创 android studio 2.2 打包失败的问题

Error:A problem was found with the configuration of task ':app:packageRelease'.> File 'H:\Project\Test\app\build\intermediates\res\resources-release-strip

2017-01-13 00:31:40 608

原创 android Adapter原理解析

1、先看一下Adapter的继承关系: 2、Adapter的实现原理其实就是一个观察者模式的应用。先上一幅简图: 3、首先看观察者抽象类:DataSetObserver,它有两个方法onChange()和onInvalidated(),源码:public abstract class DataSetObserver { /** * This method is c...

2016-09-29 15:03:18 4251

原创 Android 沉浸式(一)

Android沉浸式

2016-09-12 11:53:21 285

原创 ListView实现上拉加载和下拉刷新

自定义可上拉加载和下拉刷新的ListView

2016-09-01 16:09:22 458

原创 Android SpannableString的简单用法(一)

在android开发过程中,对于侧重信息展示的模块,往往需要设置字体的多样化样式,使用简单的大小和颜色不足以达到目标时,可以使用SpannableString类提供的相关方法。

2016-08-15 18:00:23 491

原创 android shape 属性详解

我们在做android UI开发时,经常会使用到各种各样的背景,很多情况下都是直接设置图片作为背景,背景图片过大,则会很影响内存,在这里我们可以使用shape来绘制一些实用的背景。shape是形状、模型的意思,首先来看一个效果图:怎样用shape来实现这种多效果的背景呢,先附上相关代码,然后进行解释。1、创建一个shape文件,命名为bg_shape_view.xml,将其保存在drawable文件

2016-06-03 17:02:41 537

原创 Android JNI开发(一)

JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C/C++),它允许Java代码和其他语言写的代码进行交互。本文将从基本的JNI开发步骤展开描述。

2016-05-03 11:36:02 363

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用

2015-12-22 20:14:18 243

ffmpeg-3.2.1版本编译的android头文件和so库

压缩包包含了ffmpeg-3.2.1源码版本通过NDK编译好的头文件和so库。库文件包括:libavcodec-57.so libavdevice-57.so libavformat-57 libavfilter-6.so libavutil-55.so libpostproc-54.so libswresample-2.so libswscale-4.so

2018-09-29

空空如也

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

TA关注的人

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