- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 音视频编解码之路:JPEG编码
音视频编解码之路:JPEG编码本文首发于音视频编解码之路:JPEG编码前言本篇是新开坑的 音视频编解码之路 的第一篇,这个系列主要通过书籍、网上的博文/代码等渠道,整理与各编码协议相关的资料和自己的理解,同时手撸下对应格式的“编解码器”,形成对真正编解码器的原理的基础认识,从而后续可以进一步研究真正意义上的编解码器如libx264的逻辑与优化。之前在查找编解码的学习资料时,看到了韦神的经验之谈,因此就以JPEG的编码来开篇吧。本篇整体脉络来自于手动生成一张JPEG图片,不过针对文章中的诸多细节做了
2021-06-01 11:26:03
1410
原创 跨平台渲染引擎之路:bgfx分析
跨平台渲染引擎之路:bgfx分析前言从问题出发使用流程初始化渲染平台信息PlatformData初始化bgfx资源Init构建顶点坐标、纹理坐标设置清屏色加载纹理、Shader、ProgramHandle与makeRef创建FBO,绑定纹理渲染FBO渲染FBO结果纹理到屏幕销毁资源销毁bgfx渲染流程流程图CommandBufferCommandBuffer / Encoder切换渲染驱动文字绘制...
2019-03-16 16:13:46
1777
原创 跨平台渲染引擎之路:拨云见日
跨平台渲染引擎之路:拨云见日前言从问题出发启程渲染引擎的技能树3D引擎着色方式的演化史Rendering PathForward renderingDeferred renderingLight Pre-Pass / Deferred LightingTile-based deferred renderingHybrid deferred renderingForward+渲染/游戏引擎调查渲染引...
2019-03-10 11:27:21
528
1
原创 【OpenGL-ES】二维纹理
本文首发于个人博客:Lam’s Blog - 【OpenGL-ES】二维纹理,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博客,如果个人博客无法访问可以留言告诉我,转载请声明个人博客出处,谢谢。 前言上一节介绍了OpenGL及EGL等方面的一些相关内容,在最后通过绘制一个简单的三角形来展示了在Android上使用OpenG...
2018-05-26 16:57:04
508
原创 【OpenGL ES】入门及绘制一个三角形
本文首发于个人博客:Lam’s Blog - 【OpenGL ES】入门及绘制一个三角形,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博客,如果个人博客无法访问可以留言告诉我,转载请声明个人博客出处,谢谢。 简介OpenGL OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言...
2018-03-18 17:11:59
662
原创 如何搭建一个拥有个人域名又带点Geek味的独立博客
本文首发于个人博客:Lam’s Blog - 如何搭建一个拥有个人域名又带点Geek味的独立博客,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博客,后续更新也只会在个人博客修改,如果个人博客无法访问可以留言告诉我,转载请声明个人博客出处,谢谢。前言最早开始写个人博客是在14年的8月,那时候大三刚结束正在实习的阶段,用的平台是csdn,那
2017-03-26 10:55:47
3973
1
原创 谈谈23种设计模式在Android源码及项目中的应用
本文首发于个人博客:Lam’s Blog - 谈谈23种设计模式在Android源码及项目中的应用,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博客,如果个人博客无法访问可以留言告诉我,转载请声明个人博客出处,谢谢。前言本文将结合实际谈谈23种设计模式,每种设计模式涉及 * 定义:抽象化的定义与通俗的描述,尽量说明清楚其含义与应用场景
2017-03-10 16:57:34
2670
1
原创 利用bat实现Android的自动化编译
标题起得有点浮夸哈,本文将介绍利用Bat指令以及Git等工具实现自动化拉取远程分支,同时使用gradle自动编译打包发送邮件到指定邮箱的过程,实现自动化编译与通知功能,因为当时的需求只有自动打包与通知,所以也没有加入异常处理机制,日志记录也不完善,但是整体思路是一致的,其余的是体验上的加强,有兴趣的朋友可以自己试试,可以借助实现了功能bat文件搭建一个web的更平易近人的界面来供每个项目使用,若有转载烦请注明出处,多谢。
2015-08-28 15:42:33
1943
转载 Android Application类的详细介绍
最近在做对Android各个组件以及一些常见类的学习总结,该篇是针对Application的介绍,转载自一篇博文,因为那篇博文排版上有些凌乱,所以整理后转载发表,有错误的地方麻烦指出改正。一.概述在android源码中对Application的描述是; * Base class for those who need to maintain global a
2015-08-28 14:27:05
717
转载 Android应用程序生命周期 - Lifecycle of an Android Application
这篇文章已是几年前的,但是目前应该依然使用于各种不同进程被android系统回收优先级的判断,所以转载来收藏,如果该机制有所改变,望提出啊In most cases, every Android application runs in its own Linux process. This process is created for the application when some of
2015-08-28 14:00:31
917
原创 当使用Gralde编译出现某jar包或库重复依赖的各种解决方案
这是半年前做项目时遇到的问题,因为项目有好几个依赖库,其中有个库的httpmime这个jar包在多个地方重复出现了,最终编译打包的时候报错对同一个jar包重复打包了,试了各种方法都无效,花了两三天才找到一个方法,用三行代码搞定,因为时间过了比较久所以可能记得也不是很清楚,只能凭印象记录下来,有错误的麻烦看到的朋友提出指正。
2015-08-28 13:39:59
5325
转载 Android 混淆代码总结
为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤:1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt(于studio为proguard-rules.pro)一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其他地方拷贝一个过来2. 最重要的就是在上述文件中添加混淆的申明了:
2015-08-28 13:06:46
856
原创 Android拦截电源键长按
1.注册一个BroadcastReceiver来监听Intent.ACTION_CLOSE_SYSTEM_DIALOGS2.当接收到该intent时,重发发送一条广播: context.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); 之前以为该条广播会替换掉原始的电源键长按广播,但是这条广播没有
2014-10-02 10:57:22
2202
原创 小米手机锁屏适配性总结
1.关闭系统锁屏 (1) 关闭当前锁屏,跳转至如下界面让用户设置 startActivityForResult(new Intent("android.app.action.SET_NEW_PASSWORD"), SET_NO_PASSWORD); (2) 进入开发者选项设置直接进入系统,相应的intent如下 Settings.ACTION
2014-10-02 10:54:53
1558
原创 防止Service因进程被杀死而销毁解决方法调查
一般情况下一个服务没有自己独立的进程,它一般是作为一个线程运行于它所在的应用的进程中1.有些Intentw无法静态注册导致即使广播接收者没有被终止却只能监听到重启的广播2.提高Service的存活率 1.前台Sevice,需要设置notification,有流氓的感觉,而且会被发现 2.在onDestroy的时候重启自身,只能保证用户手动关闭服务的时候重启,强制杀死整个
2014-10-02 10:53:41
1588
原创 Android 应用层面屏蔽状态栏方法总结
由于StatusBarManager在SDK中没有提供,所以需要使用反射来调用该类的方法代码部分如下:Object service = getSystemService("statusbar"); try { Class statusBarManager = Class.forName("android.app.StatusBarManager");
2014-10-02 10:48:16
4619
原创 Android 学习历程摘要(四)
1. Android hosts文件位于system/etc中,绑IP地址时如果该地址是最后一个,一定要记得回车2. 异步持有资源报错是指当我们异步操作的时候却对一个已经不可见的视图进行操作,比如操作一个已经不可见的按钮或者刷新一个不可见的界面时会报错,而持有这个类的变量的话是不会报错的,只是会导致这资源一直被持有而不会被系统回收当一个class被销毁时,其内部所有资源也会被一起销
2014-10-02 10:06:58
909
原创 计算机专业术语全称及含义整理
由于经常会看到一些缩写或者专业名词,现在开始有记录下来的习惯,记录下来的今后就都放在这个博文里,顺带会补上各自的含义便于查找。1.用户界面User Interface UI UI设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。2.用户体验User Experience UX 人与系统交互时的感觉就是用户体验。3.人机交互Human Computer
2014-08-10 16:52:56
7024
原创 Java 内部类浅析
Java内部类是指在一个外部类(或者方法)的内部再定义一个类,分为成员内部类、局部内部类、静态内部类和匿名内部类,各个内部类具有自己的使用场景以及作用域,本篇博文借鉴网上学习资料对各个内部类进行了简单的介绍以及相对应的示例代码分享。
2014-08-10 16:49:43
3663
4
原创 AlertDialog.Builder中的setMultiChoiceItems中的事件处理
因为实习项目中涉及到类似于时钟设置闹钟重复时间的原因需要使用对话框的方式呈现,由于DialogFragment目前还没实验出嵌套Fragment的方法,所以暂时先用AlertDialog.Builder中的setMultiChoiceItems代替,由于网上搜索时都只有显示的代码,没有关于点击事件进行操作的示例,所以根据项目自己整理了一下效果图:逻辑:用户点击取消则销毁对话框,点击
2014-08-10 16:46:29
4015
原创 Android 开发环境搭建
JDK配置安装完毕之后:我的电脑——右键属性——高级系统设置——环境变量——系统变量新建——变量名JAVA_HOME 变量值为所安装JDK的根目录,如F:\Java\jdk1.7.0_60——确定系统变量PATH——编辑——末尾加上; %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;——确定确认:控制台java –versionEcl
2014-08-10 16:44:38
1912
原创 Android 编码规范
一、命名规范1.1包命名命名规则:一个唯一包名的前缀总是全部小写ASCII字母并且是一个顶级域名,通常是com,edu,gov,mil,net,org等。规约:以公司为准,一般是com.公司名.项目名称缩写.模块名或层级名称1.2类和接口命名命名规则:类名是一个名词,采用大小写混合的方式,每个单词的首字母大写。避免使用缩写词,除非该缩写词被更广泛使用,如URL,HTML等。
2014-08-10 16:42:19
1487
原创 选中的磁盘具有MBR分区表,在EFI系统上Windows只能安装到GPT磁盘的解决方法
以下内容参考网上多篇文章整理与实践所得,不一一指出感谢的人了使用光盘安装,在 现在安装 界面时按下SHIFT+F10调出命令提示符输入diskpart 打开diskpart工具输入list disk 列出磁盘输入select disk 0 选择0号磁盘 此处根据自身需要而定输入clean 清除磁盘输入convert gpt 将磁盘转换成gpt格式输入list p
2014-08-10 16:41:29
10154
1
原创 《Android 4高级编程》学习摘要
1.文件(如位图或者音频文件)通常是不存储在数据库的表中的。使用一个代表存储路径的字符串或者更好的方式是使用一个完全限定的URI来存储文件的路径。 强烈建议所有的表都应该包含一个自动增加的键字段,作为每一行的唯一索引字段。如果计划使用ContentProvider来共享表,就必须具有唯一的ID字段。2.当你认为要查找的列在所有情况下都存在时,使用getColumnIndexOrThro
2014-08-10 16:35:18
1871
原创 Android 学习历程摘要(三)
1.proguard混淆:对与Activity等不应进行混淆,否则系统将找不到生命周期函数;JSON字符串要考虑混淆之后是否会影响字段名;native方法也不混淆,否则调用不到2.ListView的onItemLongClickListener返回true时将不会再调用onItemClick3.善用单例模式4.分享会上所得:重要与紧急哪个优先处理,答案是优先处理重要的事情。处理事情的顺
2014-08-10 16:34:28
1195
原创 Android 学习历程摘要(二)
1.资源文件命名只能小写,否则会报错生成不了R.java文件2.R文件导包时应该导入自己工程的包,而不是android.R3.数据库操作使用SqliteOpenHelper4.values目录下自定义一个自己的xml文件,获取的方法是R.__横线处根据自定义XML中的子节点而定,比如则就是R.String5.Eclipse中CTRL+SHIFT+X与CTRL+SHIFT+Y为大小写
2014-08-10 16:33:45
1270
原创 Code Review(二)
1. 对于ListView的优化使用BindView函数专门处理数据与视图绑定的操作getItem函数与getItemId函数不是在需要的时候才去重写的,而是必须根据自身应用的实际情况对其进行修改,比如getItemId,不一定是返回position,也可以返回list集合中的相应位置上元素的ID视实际情况而定,当要适配到视图条目上的数据对象为空时,如有需要应该对视图也进
2014-08-10 16:33:20
1262
原创 Code Review(一)
1. 尽可能减少return的次数,同时避免不必要的重复逻辑处理如 public boolean isWIFIOpened() { if (mWifiManager.isWifiEnabled()){ returntrue; }else{ returnfalse; }
2014-08-10 16:31:18
1069
原创 Android 学习历程摘要(一)
初学Android,可能有些地方可能理解不对,如果有朋友看到的话麻烦指正我一下,万分感谢。1. 善用API DEMO,初学者的需求基本在里面都可以满足,Eclipse导入API Demo工程出错的话可能原因是SDK版本过低,将target属性设高即可,然后prject——clean一下2. Fragment属于APP,而不是VIEW,这在API Demo中也有体现,因为Fragme
2014-08-10 16:29:58
1510
ViewDragHelper示例程序
2014-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人