android
文章平均质量分 53
SakuraMashiro
研究兴趣:深度学习,计算机视觉,计算机图形学,AR ,
编程能力:C++,Java,Python
座右铭:关注积累,关注成长
展开
-
android 导入zxing 进行二维码开发
zxing是google官方用于处理二维码的开源项目,github地址https://github.com/zxing/zxing 。 如果把整个项目clone下来,由于项目文件较大,加上网速普遍较慢,会浪费好多时间,可以选择git浅复制 git clone –depth=1 https://github.com/zxing/zxing.git 。这里选择直接Download 最新一次版本ZIP的原创 2017-06-30 01:27:11 · 2598 阅读 · 0 评论 -
Android OpenGL ES2.0学习(一)基础三角形案例
OpenGL ES 2.0与OpenGL ES 1.x的一个最大不同就是用可编程渲染管线代替了原有的固定渲染管线。在学习OpenGL ES 2.0之前,有必要先了解一下OpenGL ES 1.x渲染管线的工作原理。渲染管线有时也被称为渲染流水线,一般是由显示芯片内部的处理图形信号的并行处理单元组成。与普通应用程序通过CPU串行执行不同,将渲染工作通过渲染管线中多个相互独立的处理单元进行并行处理后,渲原创 2017-10-16 17:46:01 · 657 阅读 · 0 评论 -
Android仿Volley手写属于自己的万能网络访问框架
在android网络通信中,我们平常开发时都会使用诸如Volley,Retrofit,AsyncHttpClient等等别人的框架,确实十分的便捷,省去了我们不少的时间。但是使用第三方框架也会带来一些不可避免的缺点。一、项目中大量使用第三方框架的缺点引入较多冗余代码,别人框架中有许多代码是我们不需要的框架中部分的函数,功能不满足我们的需求(定制性较弱)下面,我们就仿照Volley框架的思想手撸原创 2018-01-02 20:35:21 · 1124 阅读 · 0 评论 -
Android性能优化(一)App启动原理分析及启动时间优化
一、启动原理解析Android是基于Linux内核的,当手机启动,加载完Linux内核后,会由Linux系统的init祖先进程fork出Zygote进程,所有的Android应用程序进程以及系统服务进程都是这个Zygote的子进程(由它fork出来的)。其中最重要的一个就是SystemServer,在ZygoteInit类的main方法中,会调用startSystemServer方法开启系统里原创 2018-01-06 00:13:54 · 11885 阅读 · 3 评论 -
Android性能优化(二)布局渲染流程及优化
一、布局渲染流程我们平常开发中的那些控件,比如Button,TextView,是如何渲染到屏幕上的呢? 简而言之,就是现先将xml解析成相应的对象,然后CPU经过计算以后将图形信息传给GPU,GPU来负责绘制,栅格化等操作,最终显示到手机屏幕上。二、为什么会出现卡顿Android每16ms对屏幕进行一次刷新,当一帧画面渲染时间超过16ms的时候,垂直同步机制会让显示器硬件等待原创 2018-01-08 20:23:09 · 1308 阅读 · 0 评论 -
Bitmap压缩原理解析与Android 7.0之前通过NDK使用libjpeg库高质量压缩图片
一、Bitmap压缩原理我们平常使用的bitmap.compress() 的内部实际上调用了如下native方法private static native boolean nativeCompress(long nativeBitmap, int format, int quality, OutputS原创 2018-01-27 18:22:04 · 2974 阅读 · 2 评论 -
Android端使用OpenGL ES加载OBJ文件数据
一、obj模型文件概览在介绍如何用程序加载obj模型文件之前,首先需要了解一下它的格式。 obj文件是最简单的一种3D模型文件,可由3dx MAX或Maya等建模软件导出,广泛应用于3D图形应用(如游戏)程序和3D打印等等,其本质上就是文本文件,里面存储的是模型的顶点坐标,顶点法向量和纹理坐标信息。下面看一个典型的obj文件# 3ds Max Wavefront OBJ Expo...原创 2018-05-09 20:08:32 · 8168 阅读 · 15 评论 -
Android Camera2.0 API实现摄像头预览并获取人脸关键坐标
Android 5.0(API Level 21)以后推出了新的camera2.0 API,原有的Camera1.0已被废弃,确实新的camera API有更好的架构,更低的耦合,可以使开发人员发挥更大的空间。API简介 主要的类有以下几个: 1.CameraManager :所有camera的管理类,可以通过调用getSystemService()得到其实例,其中的方法getCameraCha原创 2017-10-24 20:31:44 · 14065 阅读 · 10 评论 -
Android Camera2.0 结合ImageReader拍照并解决图片偏转问题
前文Android Camera2.0 API实现摄像头预览并获取人脸关键坐标已经介绍了Camera2.0的基础内容,在2.0的API中,要想实现拍照功能,则要借助于ImageReader。首先在自定义的TextureView.SurfaceTextureListener的实现类中,维护ImageReader的引用private ImageReader mImageReader ;然后在setUpC原创 2017-10-25 20:44:51 · 17700 阅读 · 1 评论 -
android OpenGL开发使用JPCT-AE引擎显示3D立方体
在了解JPCT之前得了解什么是opengl,opengl是一个跨语言,跨平台的3D图形编程接口,OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。而JPCT则是java的一款3D图形引擎,封装了opengl,jPCT-AE是jPCT在android平台上的移植版本。用opengl的原创 2017-09-02 12:52:40 · 2222 阅读 · 0 评论 -
android 自定义view 实现定制二维码扫描框
上一篇文章说到如何使用google的zxing开源框架android导入zxing进行二维码开发,本篇就讲讲如何通过自定义ViewFinderView这个类来制作我们自己的扫描框。首先在com\google\zxing\client\android目录下找到ViewFinderView这个类,这个View就是用来绘制二维码扫描的页面的具体修改代码如下:package com.google.zxing转载 2017-06-30 15:00:11 · 9232 阅读 · 2 评论 -
Android 自定义View实现圆形进度条 深入理解onDraw和onMeasure及自定义属性
Android的View类是用户接口的基础构件,表示屏幕上的一块矩形区域,负责这个区域的绘制和事件处理。自定义View的过程主要包括重写onDraw及onMeasure方法 , 其中onMeasure方法的作用就是计算出自定义View的宽度和高度。这个计算的过程会参照父布局给出的大小(widthMeasureSpec和heightMeasureSpec),以及自己特点算出结果 ;onDraw则根据o原创 2017-06-23 17:45:49 · 792 阅读 · 2 评论 -
自定义ViewGroup和FrameLayout实现轮播图(包括底部小圆点)
广告轮播图在现在的APP首页比较常见,主要的实现方式有两种,一种是通过ViewPager,一种是通过自定义ViewGroup。前者的实现方式比较简便,本篇文章讲的是第二种方法,有人说用ViewPager不是更方便吗,的确,但是我们通过自己定义ViewGroup,可以更深入了解ViewGroup内部的原理。用别人造的轮子确实方便,但有的时候拆开轮子看看,我们也许会学到更多。效果图 主要的思路如下:原创 2017-07-13 15:31:39 · 1020 阅读 · 0 评论 -
Android 自定义九宫格手势锁
预览效果图如下:主要的方法是重写View.onTouchEvent( MotionEvent event ) , 常用的三个操作:ACTION_DOWN 手指触摸屏幕 ; ACTION_UP 手指离开屏幕; ACTION_MOVE手指在屏幕滑动。 如果该方法返回true ,表示该事件已经被View处理,不再向上层的View或Activity传递 ; 如果返回false, 表示事件未处理,继续传递原创 2017-06-25 15:44:48 · 1154 阅读 · 0 评论 -
android自定义View 五子棋小游戏
做一个五子棋练练手,没什么特别的,再复习一下自定义View的知识,onMeasure,MeasureSpec , onDraw以及OnTouchEvent方法等, 效果图代码如下:package com.fivechess;import android.content.Context;import android.graphics.Bitmap;import android.graphics.原创 2017-07-13 21:41:03 · 523 阅读 · 0 评论 -
android 拼图小游戏
拼图虽是比较小的一个游戏,但涉及到的逻辑和代码也没那么简单,这里参考慕课网上的教程,采用一个二维数组来存储拼图的小方格,并将拼图的数据GameData(包括x,y坐标和正确的摆放位置)和视图(Bitmap)分离,并编写相应的游戏逻辑控制方法(控制层controller),很好地体现了MVC的思想。 视频网站:http://www.imooc.com/learn/683 效果图:源代码:packa原创 2017-07-14 16:32:54 · 2726 阅读 · 1 评论 -
Android 使用SurfaceView进行2D动画的开发
SurfaceView介绍SurfaceView是View的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图容器。它的特性是:可以在主线程之外的线程中向屏幕绘图上。这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画布canvas中画出。这个视图里内嵌了一个专门用于绘制的Surf原创 2017-09-05 18:41:57 · 838 阅读 · 0 评论 -
Android使用讯飞SDK开发语音识别及合成小Demo
自然语言处理现在是比较火的一个领域,也有了很多成熟的应用,像科大讯飞或是百度语音等等这些商业产品的一个优势之一就是比较稳定,适合用来做开发。下面就展示一个根据讯飞SDK文档做出的具有语音识别和语音合成功能的小Demo。 首先,第一步当然是去讯飞官网注册账号,创建应用并获得一个AppID,然后下载相应的SDK,我这里只下了两个,分别是语音听写和语音合成的。 然后将SDK里libs目录下的文件全部拷原创 2017-09-14 18:47:45 · 12235 阅读 · 3 评论 -
OPPO2019春季校园招聘C/C++开发(手机方向)面试总结
本科软件工程普通学生一枚,春招之路,记录下心得面试过程首先一上来面试官先介绍了下自己,然后让我做个自我介绍,我像往常一下介绍了下自己的项目经验和实习经历,阐述了一下求职意向。接着面试官从我的专业基础问起,问我在校学的最好的专业课是啥,我说是计算机网络和操作系统,然后他就问我操作系统主要讲了啥,然后我从进程管理,内存管理,文件管理和设备管理这几个方面讲了一下一些。(实际上并不准确,进程管理属于...原创 2019-03-06 17:53:06 · 4984 阅读 · 1 评论