- 博客(15)
- 资源 (6)
- 收藏
- 关注
原创 Android7.0 Uri检测兼容
在Android7.0以后谷歌对与文件的安全性做了更加规范的管理,针对于安全文件的读取有了新的规范;这里针对于Uri的兼容写两个方案:错误信息android.os.FileUriExposedException: 1.常规的方案如下:1.1 在AndroidManifest文件的application节点下配置provider(packagename是自己应用程序包名)
2018-01-09 16:24:23
775
原创 Android实用技巧-动态代理
应用场景在Android的代码维护当中,经常会涉及到逻辑变更.但是又并不是整个逻辑变更了,往往是类似在之前的操作前面追加逻辑,或者是在之后追加逻辑.对于这样的逻辑,往往是每个类型的操作里面都要变更. 比较笨的方法当然就是挨个去写啦.但是这种体力劳动太低效,太浪费了.在JAVA中,针对这样的应用场景,比较常规的是有两种处理方案: 1.继承,重写方法; 2.装饰模式; 3.动态代理;1.继承对于
2017-07-03 10:04:54
869
原创 Android系统源码分析-bitmap的加载
引导在Android的开发中,有图片是非常常见的了,但是对于图片的加载 处理遇到问题也是经常出现的,对于开发者而言,加载图片的时候产生OOM,应该都有出现过吧.本文,通过阅读bitmap源码的方式,熟悉Android中图片的加载工作流程,以便能从工作流程上去解决一些bitmap加载的问题.
2017-04-10 17:42:55
2310
原创 Android源码-Android系统启动源码分析
Android系统启动源码分析解读Android的源码可以让我们更好的学习系统的优秀源码,以及google工程师对于一个程序的是如何实现的,从源码的分析也可以强化我们的编程思想.引导Android系统启动流程源码分析,基于Android5.1(个人比较喜欢这个版本的源码,因为改动比较大)Android系统是基于linux内核的,所以在Android启动的时候会先去加载linux内核,内核启动的时候会
2017-04-08 15:58:30
2018
原创 Android源码 半小时下完Android系统源码
1.为什么要阅读源码?对于Android开发者来说,熟悉源码并没有坏处.我个人认为,熟悉源码之后可以更好的理解Android的工作流程,而且在我们开发的时候,知道原理,可以给予我们很多的帮助.比如说,自定义View的时候,你知道Android的View绘制流程,那么你想要实现一个自己的View,那就没有什么难度了.2.源码下载在国内想要下载Android的源码,常规手段是通过翻墙,然后去下载goog
2017-03-25 13:15:22
18819
3
原创 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-03-25 10:57:42
326
原创 3D开发学习-着色语言 Shading Language基础(二) 特殊内建变量
着色器代码的开发中会用到很多的变量,其中大部分可能是由开发人员根据需求自定义的,但是,着色器语言也提供了一些用来满足特定需求的内建变量.内建变量不需要声明就可以直接使用,一般用来实现渲染管线固定功能部分和自定义顶点或片元着色器之间的信息交互.内建变量根据信息传递方向可以分为两类:1.输入变量:负责将渲染管线中固定功能部分产生的信息传递进着色器.2.输出变量:负责将着色器产生的信息传递给
2017-02-15 17:11:14
437
原创 android_图片转视频_image2video
因为项目需求,之前写了一个用图片转视频的博客,之前是用的ffmpeg去实现的,但是在6.0的权限下这个动态库就有一些不好使了.在6.0之后这个会因为出现动态寻址的问题无法使用一些so库,而且我们的项目主要是为了生成视频去让微信分享给朋友圈,但是ffmpeg生成的视频虽然也是mp4的格式,但是还是有一些问题,导致了不能分享,现在给大家分享一个能分享到微信朋友圈的小视频制作方案.此次,将会用到
2017-01-07 10:50:40
10192
20
原创 android图片转视频,安卓屏幕录制
最近比较忙,一直都没有写博客了呢.本来一直在写3D开发OpenGL ES的,但是项目太紧,没有时间写.现在项目中要求了一个功能,是把一个3D的模型作为微信小视频去分享.那就涉及到一个屏幕录制.就现在而言,对于安卓的屏幕录制主要有两种方法:第一:利用系统5.0之后提供的屏幕录制API的MediaProjection去实现.实现的时候任何屏幕都可以去录制,除了添加窗口安全flag的以外.而且使
2017-01-05 13:37:17
4421
1
原创 3D开发学习-着色语言 Shading Language基础(二) 使用
第一:在上一篇博客中,写了shading language的基础类型,现在说一下shading language的基础类型的声明,初始化和作用域问题.1.声明,作用域及初始化:变量的声明及作用域与C++语法类似,可以在任何需要的地方声明,同时作用域也与C++类似,分为局部变量和全局变量.如下:int a , b; //全局变量a和bvec3 aPosition = vec3(1.
2016-12-22 14:03:40
536
原创 3D开发学习-着色语言 Shading Language基础(一)
一:简介:OpenGL ES 着色语言是一种高级的图形编程语言.其源自应用广泛的C语言,同时具有RenderMan以及其他编程语言的一些优良特性.与传统的语言不同的是,他提供了更加丰富的原生类型,比如向量,矩阵等.OpenGL ES着色语言的特性如下:1.Open GL着色语言是一种高级的过程语言(不是面向对象)2.对于顶点着色器,片元着色器使用的是同样的语言,不区分.3.基于
2016-12-20 09:12:31
932
原创 3D开发学习-初始openGL ES应用程序
本文针对与OpenGL ES2.0开发一个小程序,实现一个三角形在空间位置上的旋转.运行效果图如下:在开始之前,我们需要做一个工具类的封装,该工具类有如下几个方法:/** * 加载指定的着色器方法 * @param shaderType 着色器类型 * @param source 着色器脚本字符串源码 * @return
2016-12-19 13:45:22
759
原创 3D开发学习-初识SurfaceView
在android上开发已经有三年多了,这次跳槽来到的是一个做VR的公司,但是我却对3D几乎等于是0基础,一跳漫长的学习道路必然不能少了.在实际开发中,一把那是用view直接去做动画的,但是基于3D的学习,我们现在用SurfaceView来做一个简单的2D动画.对于图SurfaceView一般是去继承他,然后还需要实现SurfaceHolder.Callback接口.onDraw方法是Surfa
2016-12-15 13:58:02
1431
原创 java计算器实现,百行代码,清晰注释
/** * 计算器算法 * @author Lxiang * 思想: * 把一个字符串表达式,拆分成两个集合,一个集合包含计算中的数,一个集合包含计算中的符号 * 1.把一个表达式中的运算子提取出来 * 2.把一个表达式中的数提取出来 * 3.遍历运算子集合,优先运算乘法和除法(遇到乘法除法的时候,移除运算子,并计算) * 4.之后剩下的就是加法和减法,依次遍历计算 * 5.如果有括号的情况,递归调用 *
2016-07-03 20:10:37
4493
java计算器,calculator
2016-07-03
java计算器calculator
2016-07-03
java_calculator实现
2016-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人