自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android framework - startActivity

这里写自定义目录标题前言源码前言相信应用开发对startActivity这个调用接口都不陌生,知道其能够跳转页面,然而,其具体是怎么跳转的,以及跳转关联的页面生命周期又是如何变化的,之前一直是知其然而不知其所以然,如今有机会静下心来,必须要好好的探索一番。源码源码探索是一个漫长而又枯燥的过程,只有静下心来,一步步梳理,理解其上下文关联,进而了然其相关流程,方能体会到其中的丰收乐趣。package android.app;...@UiContextpublic class Activity e

2024-02-20 22:38:03 461

原创 android 音视频硬编解码

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-01-31 21:11:31 6527

原创 ijkplayer message_loop

message_loop在native_setup过程中// ijkplayer_jni.cstatic voidIjkMediaPlayer_native_setup(JNIEnv *env, jobject thiz, jobject weak_this){ MPTRACE("%s\n", __func__); IjkMediaPlayer *mp = ijkmp_a...

2019-10-31 14:31:51 337

转载 Android Framework 源码之旅 —— 正识Binder

前言

2019-05-26 08:19:16 357

原创 NDK实现相机预览

前言通过调用Android SDK实现相机预览是一件非常简单的事情,但这终归是通过JAVA调用native接口,那么如何直接通过native的方式来进行相机预览呢,当然,这就需要借助到NDK了,...

2019-02-24 15:18:02 4357 9

原创 用Kotlin自定义一个搜索框控件

前言Kotlin作为谷歌力推的Android一级开发语言,当然是有它的独到之处的,Kotlin也使用了一段时间了,今天心血来潮,用它来自定义一个搜索框控件,话不多说,先上图思路从效果图可以看出,无非就是三个控件组合而成的:一个文本编辑框EditText和两个ImageView。所以这个自定义控件得继承ViewGroup,而整个布局,要么是用自定义好的一个XML布局文件,再要么就是自己摆放控...

2019-02-17 15:19:48 1439

原创 Win10下使用VirtualBox创建Ubuntu虚拟机实现android源码编译

文件共享首先要设置共享文件夹和安装增强功能 这里可以看到,Win10系统下的Receive文件夹和Ubuntu系统的share文件夹关联了起来,可以进行文件共享了!局域网共享文件共享是能共享了,但是,发现,经常报文件只读错误,没办法,只能另谋它路,局域网共享就是不错的选择。 选择要共享的文件目录进行共享设置,不过在这之前,要使虚拟机和主机属于同一个网段,...

2018-05-15 10:49:21 1046

原创 React-Native-Android的踩坑之旅

前言作为一个Android应用层原生开发者,APP升级始终是绕不过去的一个痛,渐渐地也就有了混合式开发、热修复、插件化,而近几年火起的React-Native也是广受追捧,这里且不谈React-Native的什么专利风波,仅从一个技术领域来讲,React-Native是值得试一试水的。 首先,我是一个很懒的人,但懒人得要有偷懒的技巧,踩过的坑,以后碰到了,再一个丈二和尚,那就违背了“懒人定律...

2018-04-24 11:06:36 244

转载 RxJava和RxAndroid

线程调度本节将有几个例子说明rxjava线程调度的正确使用姿势。例1 Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) {

2017-09-21 23:11:27 349

原创 Android 控制状态栏和导航栏

温故开始记录前,还是先引用前辈们经典的示意图其中,statusBarColor和navigationBarColor就是本文的主角。沉侵式先上一张原始图片接下来就来看看沉侵式的效果是不是有种身临其境的感觉呢?这就是沉侵式UI的魅力。通过XML样式配置需要在res文件夹下面建立values-v19和values-v21两个文件夹在values-v19的styles.xml中对应的配置样式中增加如下配置

2017-09-20 23:41:20 1033

原创 Git教程 —— 修改远程提交

删除有时候我们可能会遇到Git提交错误的情况,比如提交了敏感的信息或者提交了错误的版本等,这个时候我们就需要将提交到代码库的记录删除掉 。现在,我要将github远程仓库中branch-2分支最新提交的三个记录删除掉。首先,找到需要回滚到的提交点的hash值不难看到,需要复制提交记录为“branch-2-1”的hash值,然后使用git reset --hard commit_hash 命令再使用g

2017-07-08 23:24:31 1306

转载 Git教程 —— 分支管理

前言用过一段时间的git了,之前都是用master主分支来控制版本的,但随着不断的使用,也开始意识到,master分支应该是一个比较稳定、正式的版本控制分支!之前也知道有分支这么个说法,但一直没太重视。今天正好抽空学了一下廖雪峰老师有关git分支方面的教程,学完之后,我怀疑之前用的是“假git”进行版本控制!这里附上教程地址:分支管理温习创建与合并分支在版本回退里,你已经知道,每次提交,Git都把它

2017-06-21 20:01:44 571

原创 Android优化 —— 瘦身

清除项目无用资源右击工程,在弹出的选项中选择Refactor,然后再选择 Remove Unused Resources,之后可以选择Preview先预览下会清除的资源清单(如果没有资源清单,可以右击某个module而不是整个工程),或者选择Refactor直接确认清除无用资源。参考链接: Android Studio 清除项目无用资源 清理无用的 Android 项目资源

2017-06-13 09:02:05 324

原创 Android Hybrid开发 —— Cordova

前言随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这个时候使用IOS&Andriod开发一个APP似乎成本有点过高了,而H5的低成本、高效率、跨平台等特性马上被利用起来形成了一种新的开发模式:Hybrid APP,而Cordova则提供了使用HTML, CSS & JS进行移动App开发的环境。搭建环境在使用Cordova之前,先要把相关的环境搭

2017-05-10 23:38:10 514

原创 Android温习 —— Activity和Fragment的生命周期

Activity的生命周期Activity一共有7个生命周期方法,见下表 生命周期方法名 作用 onCreate() 创建Activity视图时调用 onStart() Activity视图可见时调用 onResume() Activity获取到焦点时用 onPause() Activity失去焦点时调用 onStop() Activity不可见时调用

2017-04-18 23:04:31 636

原创 我的第一个自定义控件

前言最近在学习自定义控件方面的知识,光看的话,始终是不会写。于是准备自己动手写一些自定义控件,先看下面一张图我想不出意外的话,这个按字母或汉字进行索引就是一个自定义控件吧!而至于具体是怎么实现的,这正是我需要去实现的!刚开始的时候,感觉不知道从什么地方下手,这就是光看而没动手写过所带来的不良反应啊!于是先看了看网上有没有比较与众不同的这方面的索引类控件,于是发现了这个于是决

2017-04-01 22:51:14 473

原创 通过AS来录制模拟器操作视频

最近喜欢上通过博客来记录工作学习中的所得,那么,记录过程中,图片的引用是少不了的!一些情况下,需要引用一些动态GIF图才能达到说明的效果,这个时候,就需要录制屏幕,然后将视频转为GIF动态图。话不多说,直接上图!配置好相关参数后,点击 Start Recording 按钮,然后就可以在模拟器上进行操作了!录制好后,点击 Stop Recording 按钮,然后选择视频存放位置,

2017-04-01 20:38:15 529

原创 Android自定义控件 —— 事件分发

摘要自定义控件在工作中时常有所接触,但始终是只得其形,不得其神。最近抽空系统学习了下这方面的知识,准备用“Android自定义控件”作为一个博客系列来记录我的学习心得,如有雷同,没错,就是我去抄的。Android自定义控件系列目录Android自定义控件 —— 事件分发Android自定义控件 —— 绘制流程参考链接: 1. 图解 Android 事件分发机制 2. An

2017-03-29 19:44:08 911

原创 Android自定义控件 —— 三大流程

摘要自定义控件在工作中时常有所接触,但始终是只得其形,不得其神。最近抽空系统学习了下这方面的知识,准备用“Android自定义控件”作为一个博客系列来记录我的学习心得,如有雷同,没错,就是我去抄的。Android自定义控件系列目录Android自定义控件 —— 事件分发Android自定义控件 —— 绘制流程参考链接: 1. Android View 的绘制流程 2. 自

2017-03-28 21:22:38 1186

转载 自定义控件之绘图篇(八) —— Paint之ColorMatrix与滤镜效果

前言自定义控件之绘图篇(一) —— 概述及基本几何图形绘制自定义控件之绘图篇(二) —— 路径及文字自定义控件之绘图篇(三) —— 区域(Range)自定义控件之绘图篇(四) —— Canvas变换与操作自定义控件之绘图篇(五) —— drawText()详解自定义控件之绘图篇(六) —— Path之贝赛尔曲线和手势轨迹、水波纹效果自定义控件之绘图篇(七) —— Paint之函数大汇总

2017-03-23 21:45:18 922

转载 自定义控件之绘图篇(七) —— Paint之函数大汇总

前言自定义控件之绘图篇(一) —— 概述及基本几何图形绘制自定义控件之绘图篇(二) —— 路径及文字自定义控件之绘图篇(三) —— 区域(Range)自定义控件之绘图篇(四) —— Canvas变换与操作自定义控件之绘图篇(五) —— drawText()详解自定义控件之绘图篇(六) —— Path之贝赛尔曲线和手势轨迹、水波纹效果自定义控件之绘图篇(七) —— Paint之函数大汇总

2017-03-23 19:58:59 1023

转载 自定义控件之绘图篇(六) —— Path之贝赛尔曲线和手势轨迹、水波纹效果

前言自定义控件之绘图篇(一) —— 概述及基本几何图形绘制自定义控件之绘图篇(二) —— 路径及文字自定义控件之绘图篇(三) —— 区域(Range)自定义控件之绘图篇(四) —— Canvas变换与操作自定义控件之绘图篇(五) —— drawText()详解自定义控件之绘图篇(六) —— Path之贝赛尔曲线和手势轨迹、水波纹效果概述从这篇开始,我将延续该系列文章把图片相关的知识给大

2017-03-22 22:54:25 1584

转载 自定义控件之绘图篇(五) —— drawText()详解

前言自定义控件之绘图篇(一) —— 概述及基本几何图形绘制自定义控件之绘图篇(二) —— 路径及文字自定义控件之绘图篇(三) —— 区域(Range)自定义控件之绘图篇(四) —— Canvas变换与操作

2017-03-22 21:27:49 4436 1

转载 自定义控件之绘图篇(四) —— Canvas变换与操作

前言自定义控件之绘图篇(一) —— 概述及基本几何图形绘制自定义控件之绘图篇(二) —— 路径及文字自定义控件之绘图篇(三) —— 区域(Range)自定义控件之绘图篇(四) —— Canvas变换与操作平移(translate)Canvas中有一个函数translate()是用来实现画布平移的,画布的原状是以左上角为原点,向左是X轴正方向,向下是Y轴正方向,如下图所示

2017-03-22 20:14:34 1394

转载 自定义控件之绘图篇(三) —— 区域(Range)

构造Region基本构造函数public Region() :创建一个空的区域 public Region(Region region):拷贝一个region的范围 public Region(Rect r) :创建一个矩形的区域 public Region(int left, int top, int right, int bottom):创建一个矩形的区域 上

2017-03-21 22:34:45 634

转载 自定义控件之绘图篇(二) —— 路径及文字

前言自定义控件之绘图篇(一) —— 概述及基本几何图形绘制自定义控件之绘图篇(二) —— 路径及文字创建路径Canvas中绘制路径利用:void drawPath (Path path, Paint paint)直线路径void moveTo (float x1, float y1):直线的开始点,即将直线路径的绘制点定在(x1, y1)的位置void lin

2017-03-21 20:59:00 785

转载 自定义控件之绘图篇(一) —— 概述及基本几何图形绘制

前言自定义控件之绘图篇(一) —— 概述及基本几何图形绘制Paint与Canvas像我们平时画图一样,需要两个工具,纸和笔。Paint就相当于笔,而Canvas就相当于纸,这里叫画布。所以,凡有跟要要画的东西的设置相关的,比如大小,粗细,画笔颜色,透明度,字体的样式等等,都是在Paint里设置;同样,凡是要画出成品的东西,比如圆形,矩形,文字等相关的都是在Canvas里生成

2017-03-21 20:15:31 871

转载 自定义控件之视图篇(二)—— FlowLayout自适应容器实现

前言自定义控件三部曲视图篇(一)—— 测量与布局自定义控件三部曲视图篇(二)—— FlowLayout自适应容器实现经过上篇的铺垫,这篇就开始正式开始FlowLayout的开发啦,还是先给大家上效果:从效果图中可以看到,底部Container的布局方式应该是layout_width="match_parent"和layout_height="wrap_content"。好了,废话不多说了,下面

2017-03-21 19:17:22 732

转载 自定义控件之视图篇(一)—— 测量与布局

前言有这样一个需求,你需要设计一个Container,实现内部控件自动换行。即里面的控件能够根据长度来判断当前行是否容得下它,进而决定是否转到下一行显示。效果图如下在上图中,所有的紫色部分是FlowLayout(自定义)控件,明显可以看出,内部的每个TextView控件可以根据大小自动排列。 效果图就是这样子了,第一篇先讲下预备知识。ViewGroup绘制流程View及ViewGroup基本相同,只

2017-03-20 21:26:48 664

原创 Android Studio版本控制 —— git

Android Studio中配置git安装好git在Android Studio中进行设置在Android Studio中使用git 若右键菜单中没有Git这个功能项,那么说明当前工程并不在本地git仓库文件夹中,需要使用git init命令进行创建。为了避免麻烦,可以在Android Studio中配置git之前,先在本地创建一个空的git仓库作为Android Studio工程根目录,然

2017-03-17 15:16:45 1146

原创 Android随记

查看系统自定义属性值这里以查看android.support.design.widget.TextInputLayout下的EditText的下划线背景的颜色变化属性值为例。找到依赖工程下的属性设置文本根据AppCompatEditText源码找到对应的样式名称在SDK资料文本中找到对应的样式设置文本根据源码中的样式名称找到对应项从上面可以看出实际上是通过attr/colorControlNorm

2017-03-13 22:36:22 320

原创 Android优化 —— JobScheduler

概述在Android开发中,会遇到这种场景 : 你需要在稍后的某个时间点或者当满足某个特定的条件时执行一个任务,例如当设备接通电源适配器或者连接到WIFI。幸运的是在API 21 ( Android 5.0,即Lollipop )中,google提供了一个新叫做JobScheduler的组件来处理这样的场景。当一系列预置的条件被满足时,JobScheduler为你的应用执行一个操作,与AlarmMa

2017-03-13 20:06:03 486

原创 Android Material Design —— CoordinatorLayout

概述CoordinatorLayout是com.android.support:design包下的一个控件,然而这个控件可以被称为com.android.support:design包中最复杂、功能最强大的控件。为什么这样说呢?那是因为它是组织它众多子View之间互相协作的一个ViewGroup。CoordinatorLayout 的神奇之处就在于Behavior对象。怎么理解呢?Coordinat

2017-03-07 21:06:09 481

原创 Android Studio 错误汇总

gradlegradle sync太慢的问题原因是国内访问 jcenter 太慢,甚至连接不上,就会报各种关于依赖更新失败的错误。 以前oschina(也就是开源中国)提供了 jcenter 的镜像地址,然而不幸的是因为各种原因,最近停止服务了。 开源中国 Maven 镜像库关闭访问 幸运的是阿里云提供了 jcenter 镜像 http://maven.aliyun.com/

2017-03-07 20:17:24 562

原创 Android优化 —— 布局

ViewStub

2017-03-06 23:04:42 299

原创 Java温习 —— 自定义注释

@interface

2017-03-06 22:09:21 337

原创 Android Material Design —— RecyclerView

概述RecyclerView是一个用于在有限的窗口中展示大量数据集的控件。那么,类似的控件当然就有常用的ListView和GridView,那么有了ListView和GridView为什么还需要RecyclerView这样的控件呢?下面就开始一步步了解RecyclerView的不同之处。依赖RecyclerView是 Support Library 的一部分,所以使用前需要在 app/build.g

2017-03-02 15:32:48 488

原创 Glide之旅 —— Key

前言glide是谷歌推荐的Android图片加载框架,其优秀的缓存策略、Activity的生命周期的继承、GIF图片的支持等都是为人所称道的地方。下面是用glide加载一张图片的调用。private void loadImage() { Glide.with(this) .load("http://pic2.orsoon.com/2017/0118/20170

2017-03-01 09:31:33 844

原创 Glide之旅 —— DecodeJob

前言glide是谷歌推荐的Android图片加载框架,其优秀的缓存策略、Activity的生命周期的继承、GIF图片的支持等都是为人所称道的地方。下面是用glide加载一张图片的调用。private void loadImage() { Glide.with(this) .load("http://pic2.orsoon.com/2017/0118/201701180110

2017-02-28 18:11:12 1419

原创 Glide之旅 —— Registry

前言glide是谷歌推荐的Android图片加载框架,其优秀的缓存策略、Activity的生命周期的继承、GIF图片的支持等都是为人所称道的地方。那么,该框架是如何实际运作的呢,我会通过“Glide之旅”系列博客尽可能详细地将我的心得记录下来。“Glide之旅”系列文章汇总:Glide之旅 —— 运行流程概述Registry(com.bumptech.glide.Registry.java)是用

2017-02-27 10:00:59 1887

C/C++ 网页版API中文参考文档

由于发现chm文档在某些平台上打开全是空白页,所以上传一份C/C++网页版的API中文参考文档,文档更新日期是在2019年4月份,仅供学习开发使用,有需要的可以下载参考

2019-08-16

空空如也

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

TA关注的人

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