自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lorien Zhang的博客

志之难也,不在胜人,在自胜。

  • 博客(30)
  • 收藏
  • 关注

原创 Binder情景分析

binder

2023-09-26 01:06:15 87

原创 AOSP基础

【代码】AOSP基础。

2023-07-12 14:10:46 474

原创 VSCode配合cmake搭建C/C++开发环境

VSCode配合cmake构建C/C++环境

2023-01-15 00:41:29 1040

原创 CMake基础教程

cmake精简教程

2023-01-14 21:18:30 548

原创 C++杂记

C++杂记

2022-12-28 12:40:49 632 4

原创 FFmpeg之Makefile流程分析

FFmpeg之Makefile流程分析

2022-11-14 00:30:47 503

原创 Android FFmpeg开发(三),利用OpenSL ES实现音频渲染

Android FFmpeg+OpenSL ES实现音频的解码与播放

2022-04-14 16:08:15 5666

原创 Android FFmpeg开发(二),实现视频解码和渲染

上一篇文章我们对FFmpeg进行交叉编译,得到了编译产物:libffmpeg.so,然后创建了一个Android项目,对libffmpeg.so库实现了集成,还没阅读上一篇文章建议先阅读:Android FFmpeg开发(一),FFmpeg编译与集成本文将利用FFmpeg对本地MP4视频文件进行视频流解码,然后使用FFmpeg中的libswscale模块将原始视频YUV帧转成RGB帧,最后将RGB帧数据刷到SurfaceView的surface中实现视频画面的渲染。 接下来,介绍下利用FFmpeg完成

2022-04-12 14:21:03 6456

原创 Android FFmpeg开发(一),FFmpeg编译与集成

一、准备交叉编译环境我的环境如下:系统:ubuntu20.04NDK版本:r17cNDK构建交叉工具链的方法参考:https://developer.android.com/ndk/guides/standalone_toolchain?hl=zh-cnNDK r17c下载链接:https://developer.android.com/ndk/guides/standalone_toolchain?hl=zh-cn,下载之后解压,我的NDK解压路径为:/work/android/sdk/nd

2022-04-09 18:11:26 9056 2

原创 Android平台使用OpenGL实现图形渲染

OpenGL定义了一个跨编程语言、跨平台的专业图形程序接口。可用于二维或三维图像的处理与渲染,它是一个功能强大、调用方便的底层图形库。对于嵌入式设备,其提供了OpenGL ES(OpenGL for Embedded Systems)版本。由于OpenGL是跨编程语言、跨平台的设计,所以在每个平台上都要有它的具体实现,负责提供OpenGL的上下文环境以及窗口的管理。在Android平台使用EGL提供本地平台对OpenGL ES的实现。

2022-04-07 20:32:28 6270 1

原创 ubuntu20源码编译安装ffmpeg

ubuntu源码编译安装ffmpeg

2022-03-23 14:01:39 6910

原创 Android集成LAME库,实现pcm转mp3

Android借助LAME库实现MP3编码

2022-03-17 16:37:36 6293 2

原创 kotlin for Andrid

1. OnGlobalLayoutListener利用kotlin减少OnGlobalLayoutListener样板代码,让代码看上去更加awesome传统java写法recycler.viewTreeObserver.addOnGlobalLayoutListener( object : ViewTreeObserver.OnGlobalLayoutListener { override fun onGlobalLayout() { recycler

2021-05-08 13:49:34 191

原创 面试基础知识

Http 请求整体流程DNS解析,获取域名对应的ip地址建立tcp连接发送Http请求server发送http响应server关闭连接。Https 加密流程,哪些环节是对称加密,哪些环节是非对称加密https采用了对称加密+非对称加密结合的方式保护C/S之间通信安全流程:客户端请求server证书(证书里包含公钥)客户端用这个公钥对“对称密钥”加密,发送给server,s...

2020-10-09 17:22:09 560

原创 算法-思维训练

两个链表想加思路:需要一个carry变量用于保存进位;最后退出循环,还需再判断一下carrypublic ListNode addLinkedList(ListNode l1, ListNode l2) { ListNode dummyHead = new ListNode(0); ListNode curr = dummyHead; // p,q两个移动指针 ListNode p = l1, q = l2; int carry = 0; whil

2020-10-09 17:20:16 310

原创 Kotlin杂记

基础语法函数当函数只有一行代码,Kotlin允许我们不必编写函数体fun largerNum(num1: Int, num2: Int) = max(num1, num2)return关键字可以省略,等号足以表达返回值的意思。kotlin拥有出色的类型推导功能。max()函数返回一个Int值,largerNum()又使用等号连接了max(),因此kotlin可以推导出largerNum()必然返回一个Int指。逻辑控制if条件Kotlin中if语句有返回值,返回值就是if语句每个条件中最后

2020-09-03 18:04:39 310

原创 一种简单优雅的TextView行间距适配方案

由于Android屏幕碎片化严重,各种屏幕分辨率层出不穷,而在不同分辨率的屏幕上显示出一致的效果,是研发和视觉共同追求的目标。TextView行间距的适配问题在研发和视觉之间纠缠了很长时间,已成为平常开发以及视觉Review时的一大痛点,严重影响了大家的工作效率。因此下面探索一种简单且优雅的适配方式。问题分析不尽如人意解决思路探索适配方案...

2020-02-26 15:01:20 1322

原创 Android仿今日头条详情页---多子view嵌套滚动方案

一、背景类似百度APP、今日头条等产品的新闻详情页的实现。ELinkageScrollLayout给出了一种多子view嵌套滑动的解决方案。下文我们统一叫做"联动容器"项目地址:ELinkageScrollLayout直观感受下联动容器嵌套滚动的Demo效果:二、分析同大多数自定义控件类似,联动容器也需要处理子view的测量、布局以及手势处理。测量和布局对联动容器的场景来说非常简单,手...

2019-12-19 16:09:21 1697

原创 RecyclerView---高仿网易新闻客户端

本文将使用RecyclerView,带领大家实现类似网易新闻客户端的Tab界面效果。先贴上效果图: 关于RecyclerView的基本使用大家可以参考鸿洋的文章:http://blog.csdn.net/lmj623565791/article/details/45059587好的,下面进入本文主题。。。实现界面布局首先,可以看到每一个Tab有一个背景样式。在drawable文件夹下新建xml文件

2016-07-12 10:29:29 3649 2

原创 TabLayout实现ViewPager指示器

在TabLayout出现之前,基本都是通过 ViewPager+FragmentPagerAdapter+第三方开源tab指示器(TabPageIndicator)来实现的。现在Android内部提供了现成的TabLayout控件来实现ViewPager指示器的效果。先看效果图:导入依赖在Gradle文件中导入依赖,代码如下:compile 'com.android.support:design:2

2016-07-07 11:22:20 3470

原创 Android必备知识---掌握Fragment(一)

基本使用静态使用Fragment第一、编写类ExampleFragment继承自Fragmentpublic class ExampleFragment extends Fragment{ @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bu

2016-07-04 21:10:54 944

原创 自定义View之常用工具类汇总

在自定义View的过程中,我们经常用到各种工具类来简化我们的工作。这篇文章就对sdk提供的一些常用的工具类进行一下总结。ViewConfiguration这个类是在自定义View的过程中使用频率非常高的。比如自定义View需要和用户进行Touch交互的时候,常常需要获得TouchSlop,就是通过这个类来获得。获取ViewConfiguration实例:ViewConfiguration vc =

2016-06-20 11:10:23 850

原创 Android Studio发布项目到Maven仓库

为了方便别人使用我们开发的Android Library,一般我们都会把Android Library打成aar包,并将aar包发布到Maven仓库当中。如果是开源项目就可以把包发布到Maven Central仓库或者JCenter仓库中;如果是公司内部使用,一般公司内部会自己搭建私有Maven仓库,就把包发布到私有Maven仓库当中,以方便别人直接使用。这篇文章就这两类仓库的发布方法做一个介绍。准

2016-06-01 20:34:11 7054 5

原创 一个强大的下拉刷新框架

最近在学习github上的一个开源项目:android-Ultra-Pull-To-Refresh(下面简称UltraPtr) 。这个项目主要用于android APP中下拉刷新的功能。OK,之所以说UltraPtr非常强大,是因为它有以下两个特点: 1. content可以是任意的view; 2. 简介完善的header抽象,用户可以对header高度自定义;在理解了UltraPtr源码之后,

2016-05-10 21:09:45 11322 3

原创 java设计模式之抽象工厂模式

转载请注明出处:http://blog.csdn.net/h_zhang/article/details/51245465前面我写了一篇关于简单工厂模式的文章,对于简单工厂模式还不清楚的同学建议先去阅读:java设计模式之简单工厂模式 ;本篇文章将讲解抽象工厂模式,并和简单工厂模式的异同点做了对比。先回顾一下简单工厂模式: 首先,组件的之间的调用应该是面向接口的,这样做可以隔离变化。其次,虽然高层组

2016-04-25 21:15:08 768 2

原创 Android常用UI之Toolbar

转载请注明出处:http://blog.csdn.net/h_zhang/article/details/51232773Android3.0之后引入了ActionBar控件,但是由于ActionBar操作的诸多不便,并且官方也在一定程度上承认ActionBar限制了android app设计与开发的弹性。所以google官方建议使用Toolbar代替ActionBar,Toolbar比Action

2016-04-24 11:48:03 18520 4

原创 java设计模式之简单工厂模式

软件开发中学好设计模式可以让你不用重复去造轮子。那么什么是设计模式呢? 设计模式:是一种解决特定环境下、重复出现的、特定问题的解决方案。在开发软件的过程中,可能会碰到许多特定的问题,利用设计模式去解决这些问题可以节省大量时间。并且这些设计模式都是前人总结的优秀经验,其中的理论思想都是经过大量验证的。好的,那就废话不多说,直接进入本文的主题:简单工厂模式。面向接口编程大家都知道,软件开发都需要进

2016-04-20 20:18:05 2028 1

原创 Android常用UI之Notification

转载请注明出处:http://blog.csdn.net/h_zhang/article/details/51114733通知(Notification)是Android中一个比较有特色的功能,由于受到用户的认可和喜爱,IOS后来也加入了类似的功能。那么本篇文章就对Android Notification的使用方法做一个详细说明。Notification实际上是一则消息,不过这个消息显示在应用程序U

2016-04-10 20:06:39 1982 4

原创 Android常用UI之AlertDialog

转载请注明出处:http://blog.csdn.net/h_zhang/article/details/51068024任何有关GUI编程都少不了对话框的使用,Android也是如此。本篇文章就对Android中AlertDialog的使用方法进行总结。那么什么时候需要使用AlertDialog呢?一般当你的APP询问用户是否做一个重要的决定的时候,或者从用户获取输入数据的时候可以使用AlertD

2016-04-05 20:46:21 4705 3

原创 Android Scroller使用详解

转载请标明出处:http://blog.csdn.net/h_zhang/article/details/51045045仔细算一下,学习android开发已经有一年时间了。大概就是读了两本书以及看一些牛人牛博。我自认为我的语言组织以及表达能力是相当差的,有很多时候自己想明白的东西就是说不出来。所以我写微博的目的就是想把一些知识点加以记录顺便锻炼一下自己的语言组织能力。如果有一些讲的不好的地方欢迎拍

2016-04-02 19:09:45 1713 5

空空如也

空空如也

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

TA关注的人

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