自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不忘初心

少壮不努力,老了还得做IT。

  • 博客(141)
  • 资源 (12)
  • 收藏
  • 关注

原创 不一样的Android体系架构

本文讲述的Android系统体系架构,是指应用层之下的整个系统内部的架构层级关系。而并非常说的4层架构:应用层,framework,运行库与环境,Linux内核,而是把系统内部的流程调用划分更加详细。一、架构Android系统体系架构图: Android系统体系架构分为5层,自顶而下分别是:应用程序框架(Application Framewo...

2018-08-22 17:12:25 1228

原创 LCD屏参:手把手教你配置LCD屏参(proch值)

 LCD屏参(proch值)解释和计算Linux内核的lcd控制器使用clcd_panel结构体表示一个LCD屏的硬件参数: /* include/linux/fb.h */  struct fb_videomode {  const char *name; /* optional */  u32 refresh; /* optional */  u32 xres;  ...

2018-05-16 19:06:04 26165

转载 安卓Handler机制:深入理解Looper,Handler,Message,Messge Queue内部原理

Handler的运行机制Handler的作用:当我们需要在子线程处理耗时的操作(例如访问网络,数据库的操作),而当耗时的操作完成后,需要更新UI,这就需要使用Handler来处理,因为子线程不能做更新UI的操作。Handler能帮我们很容易的把任务(在子线程处理)切换回它所在的线程。简单理解,Handler就是解决线程和线程之间的通信的。Handler的使用使用的handler的两...

2018-05-02 10:25:40 1508

原创 i2c总线(基本原理)

 相关文章:                 一 .  i2c总线协议                 二.   普通IO模拟i2c总线                 三.   简单i2c设备驱动实例 i2c总线协议1.I2C协议   2条双向串行线,一条数据线SDA,一条时钟线SCL。   SDA传输数据是大端传输,每次传输8bit,即一字节。   支持多主控(...

2017-09-19 10:15:17 6790

原创 OTA升级实例

 Platform: RK3399 OS: Android 7.1  一、全编make -j32./mkimage.sh ota二、生成原始的 OTA 完整包make otapackage会在 out/target/product/rk3399_firefly_box/下生成rk3399_firefly_box-ota-eng.root.zip所生成的这个...

2017-09-18 16:28:48 4087

原创 安卓强制横屏或竖屏实例

 一.  OS:安卓5.1修改文件:frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java 在函数updateOrientationFromAppTokensLocked,强制为竖屏添加:req = ActivityInfo.SCREEN_ORIENTATION_PORTR...

2017-09-14 16:23:08 2584

原创 安卓去除虚拟按键(home键,返回键,列表键)

系统5.1相关文章:安卓添加虚拟按键1.修改以下两个文件中home和recent_app的visibility属性为gone(属性为隐藏)frameworks/base/packages/SystemUI/res/layout-sw600dp/navigation_bar.xmlframeworks/base/packages/SystemUI/res/layout/nav...

2017-08-10 15:48:46 17637

原创 利用libusb接收数据存在丢帧问题

利用lisusb开源库实现读取hid数据,并用libusb多缓存的方式解决了hid协议传输高频数据(例如 imu数据)时,会发生丢帧的问题。在实际项目中很常见。希望能帮到遇到相同问题的同学。

2024-03-11 20:30:50 324

原创 从cameraprovider直接获取camera数据

像XR/VR/AR设备系统,slam算法都是运行在native层,slam主要的数据是camera跟imu,为了提高数据效率,camera部分可以直接从cameraprovider获取。

2023-07-01 10:15:27 234

原创 1.Android Native Sensor(C++)实例

安卓Sensor数据的获取除了java上层开发外,还有native本地开发。比如基于Sensor数据的算法,为了保证效率,肯定是在native层运行。本文主要基于Android Native 获取不同的Sensor(陀螺仪/加速度/重力/角速度/磁力)数据及工程示例代码。

2022-12-26 18:47:43 1255 1

原创 安卓RecyclerView+CardView使用总结

转载于:https://blog.csdn.net/iwanttohitren/article/details/60963706前言: 使用RecyclerView和CardView已经好久了,写一个小程序来回顾和梳理一下知识点。RecyclerView和CardView的介绍和优势,我这里就不再赘述了,网上有很多好的文章,例如:我刚开始学习的时候,是看着鸿洋大神写的Android Recycle...

2021-12-20 14:52:43 2166

原创 Android WatchDog

android watchdog

2021-12-15 12:19:44 2321

原创 c++基础(6) - string

简介:string 是 C++ 中常用的一个类,它非常重要,我们有必要在此单独讲解一下。使用 string 类需要包含头文件<string>,下面的例子介绍了几种定义 string 变量(对象)的方法:​#include<iostream>#include<string>using namespace std;int main(){ string s1; string s2 ="c plus plus";...

2021-11-15 21:53:29 1124 1

转载 C++基础(5) - 内存管理

内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能。本期专题将从内存管理、内存泄漏、内存回收这三个方面来探讨C++内存管理问题。...

2021-11-11 23:48:43 389

转载 C++基础(4) - 数组

1. Cpp中的数组C++支持数组数据结构,它可以存储一个固定大小的相同类型的元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,如a0,a1,a2,a3,a4...,a99,而是声明一个数组变量,比如as,然后使用as[0],as[1],as[2],...,as[99]来代表一个个单独的变量,数组的特定元素可以通过索引来访问。所数组都是由连续的内存位置组成,最低的地址对应第一个元素,最高的地址对应最后一...

2021-11-09 22:17:31 522

原创 Linux signal、sigaction的使用总结

一、什么是信号信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。比如kill、程序异常crash、段错误等。但它们还可以作为进程间通信或修改行为的一种方式,明确地由一个进程发送给另一个进程。一个信号的产生叫生成,接收到一个信号叫捕获。二、信号的种类信号的名称是在头文件signal.h中定义的,信号都以SIG开头,常用的信号并不多,常用的信号如下:更多的信号类型可在kernel目录下搜...

2021-11-04 22:38:26 1092

原创 Android studio:编译遇到的问题及常用技巧

1. 编写本地代码(C/C++)自动补全: 实际要做的就是将Gradle链接到外部CMake(CMakeLists.txt)或ndk-build(Android.mk)项目从IDE左侧打开“项目”窗格,然后选择Android视图。 右键单击要链接到本机库的模块,例如应用程序模块,然后从菜单中选择“Link c++ Project with Gradle”。您应该看到一个类似于图4所示的对话框。 从下拉菜单中,选择CMake或ndk-build。 如果选择CMake,请使用...

2020-11-06 11:35:08 481

原创 android NDK(四) :JNI本地数组及对象的处理实例

1. C++返回数组类型://返回float[],其他基本数据类型数组类似JNIEXPORT jfloatArray JNICALL Java_com_miles_Test_RetFloatArray(JNIEnv *env, jclass) { jfloatArray positionArray = env->NewFloatArray(2); if (positionArray == NULL){ return NULL; } jfloat tempArray[2

2020-11-04 19:18:33 498

原创 android NDK(三) :C/C++代码调用java实例

1. java代码:package com.miles;import android.content.Context;import android.provider.Settings;import android.util.Log;public class Test { static { System.loadLibrary("native-lib"); } public static String getString() { ...

2020-11-04 09:33:15 443

原创 android NDK(二) :JNI的数据类型和类型签名

基本类型JNI类型 Java类型 描述 jbyte byte 有符号,8位,整型 jshort short 有符号,16位,整型 jint int 有符号,32位,整型 jlong long 有符号,64位,整型 jfloat float 32位,浮点型 jdouble double 64位,浮点型 jboolean boolean 无符号,8位,整型 jchar ...

2020-11-03 22:31:25 453

原创 项目Git tag格式规范

Git tag format:<ProjectName>_<Version>_<comments(optional)>Where:ProjectName- 采用UpperCamelStyle风格。第一个字母大写。Version- version in a format v{major}.{minor}.{build}{patch} ; major is number, minor is number, build is number, patch i...

2020-09-23 17:24:48 2202

原创 软件版本发布说明

RequirementsTitle of "Release Notes". Date with format of:Date:Month ##[st|nd|rd|th], 20## Version with format of:Version:Hello SDK#.# Bulletted/Numbered Lists Each list of items in the Release notes uses a bulletted/numbered list. Bulletted li...

2020-09-23 17:18:51 604

原创 软件版本格式

为了在软件产品生命周期中更好的沟通和标记,我们应该对APP、软件的版本号命名的规范和原则有一定的了解。

2020-09-23 15:25:48 684

原创 C++代码风格规范

Introduction介绍以下是此代码惯例的重点:C++ Coding Style Guide Highlights但我们强烈建议大家阅读完整文档因为包含了很多有用的信息和例子。头文件通常,每个.c / .cpp文件都应该有一个关联的 .h文件。 有一些常见的例外,例如单元测试(unit tests)和只包含main()函数的小型 .c / .cpp文件。正确使用 header files 会对代码的可读性,大小和性能有所提升。以下规则将会指示使用 header files 的

2020-09-23 10:52:20 709

转载 Android大厂面试题锦集(BAT TMD JD 小米)

上次写这篇文章的时候也差不多是一年前了,这一年我兜兜转转从android到java又回到android,校招面了很多大厂,阿里、京东、小米、头条、知乎、腾讯、有赞,也收获了几个offer。这是集合了牛客网、百度、简书等网站的几十篇面经和我自己面试的经历的合集,希望大家喜欢。1.android事件分发机制,请详细说下整个流程事件分发(面试).png2.android view绘制机制和加载过程,请详细说下整个流程1.ViewRootImpl会调用performTraversals(),.

2020-08-24 16:02:02 1905

转载 Android中三种锁的基本实现

一、synchronized基本概念:对象锁synchronized(object){….}用法在以上的代码块中只能由一个线程执行!!!wait()、notify()是用在这个代码块当中的。wait()可以使当前线程A马上失去对象锁并且沉睡,直到对象调用notify()唤醒该线程。此时持有对象锁的线程B会先行执行完毕,然后再将对象锁交给线程A继续执行。public class Person {private String name;private int age;public Pers

2020-06-22 21:53:38 2290

转载 C++11多线程mutex

mutex又称互斥量,用于提供对共享变量的互斥访问。C++11中mutex相关的类都在<mutex>头文件中。共四种互斥类:序号 名称 用途 1 std::mutex 最基本也是最常用的互斥类 2 std::recursive_mutex 同一线程内可递归(重入)的互斥类 3 std::timed_mutex 除具备mutex功能外,还提供了带时限请求锁定的能力 4 std::recursive_timed_mutex

2020-06-16 19:24:10 751

转载 C++ pthread 多线程

本节将详细介绍std::thread的用法。std::thread在<thread>头文件中声明,因此使用std::thread需包含<thread>头文件。<thread>头文件摘要<thread>头文件声明了 std::thread 线程类及std::swap(交换两个线程对象)辅助函数。另外命名空间std::this_thread也声明在<thread>头文件中。下面是 C++11 标...

2020-06-16 19:00:52 1671

原创 Android Bitmap,Image,Mat之间的相互转换

本文记录的主要是安卓java层获取到图片Image或者Bitmap,传到本地处理, 然后再把本地的图片传回java层显示一 . JAVA层的Image图片传到本地处理,然后再传回java层显示://Image转成YUV Byte[]ImageReader readerImage image = reader.acquireLates...

2020-01-06 17:40:24 7138

原创 安卓startActivity:彻底理解startActivity的启动过程这一篇就够了

基于Android 6.0的源码剖析, 分析android Activity启动流程,相关源码:frameworks/base/services/core/java/com/android/server/am/ - ActivityManagerService.java - ActivityStackSupervisor.java - ActivityStack.java ...

2019-11-16 15:42:50 26778 2

转载 C++基础(3) - Singleton单例模式

C++ 单例模式总结与剖析 单例可能是最常用的简单的一种设计模式,实现方法多样,根据不同的需求有不同的写法; 同时单例也有其局限性,因此有很多人是反对使用单例的。本文对C++ 单例的常见写法进行了一个总结, 包括懒汉式、线程安全、单例模板等; 按照从简单到复杂,最终回归简单的的方式循序渐进地介绍,并且对各种实现方法的局限进行了简单的阐述,大量用到了C++ 11的特性如智能指针...

2019-11-16 15:09:00 1275

转载 C++: 隐式类型转换和显式类型转换

第1部分.隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。intival=3;doubledval=3.14159;ival+dval;//ival被提升为double类型2)一种类型表达式赋值给另一种类型的对象:目标类型是...

2019-11-06 12:52:46 4494

转载 C++: Virtual关键字的几种用法

virtual在英文中表示“虚”、“虚拟”的含义。c++中的关键字“virtual”主要用在两个方面:虚函数与虚基类。下面将分别从这两个方面对virtual进行介绍。1.虚函数虚函数源于c++中的类继承,是多态的一种。在c++中,一个基类的指针或者引用可以指向或者引用派生类的对象。同时,派生类可以重写基类中的成员函数。这里“重写”的要求是函数的特征标(包括参数的数目、类型和顺序)...

2019-11-06 09:52:10 2784

转载 C++: vector的使用总结及常用操作

一、C++ vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分使用时需包含头文件:#include <vector>二、C++ vector类有两种使用方式:第一种:STL方式vector< string > text;1. 我们向 vector 中插入元素,而不再是索引元素,以及...

2019-11-05 10:21:31 345

原创 JKalman滤波的使用(java实现的卡尔曼滤波)

JKalman是一个开源项目,利用java实现的卡尔曼滤波,本文主要记录在项目中的使用记录。 1. 官网的源码下载:https://sourceforge.net/projects/jkalman/ 保存到百度网盘的源码及卡尔曼介绍文档下载:https://pan.baidu.com/s/10NLw-4pcTQsxjCB8...

2019-10-29 16:45:56 6617

原创 Ubuntu16.04安装Caffe(CPU_ONLY)

本文记录的是自己在Ubuntu16.04上配置caffe环境跟编译的全部过程。1、安装依赖库 sudo apt-get install libprotobuf-dev sudo apt-get install libleveldb-dev sudo apt-get install libsnappy-dev sudo apt...

2019-09-16 14:53:04 330

原创 Camera结构原理

一.Camera的成像原理 景物通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为模拟的电信号,经过 A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过 IO 接口传输到 CPU 中处理,通过 LCD 就可以看到图像了第一层“LENS” CAMERA的成像关键在于SENSOR,为...

2019-08-27 18:24:05 2556

原创 c语言 - 常用函数

stdlib.hint atoi(const char *str):转换为intlong int atol(const char *str):转换为long intdouble atof(const char *str):转换为doublevoid abort(void):终止一个程序int atexit(void (*func)(void)):当程序正常终止时,调用函数fun...

2019-08-08 17:14:06 325

原创 Linux下动态库的编译及使用示例

1、动态库的编译下面通过一个例子来介绍如何生成一个动态库。这里有一个头文件:so_test.h,三个.c文件:test_a.c、 test_b.c、test_c.c,我们将这几个文件编译成一个动态库:libtest.so。//so_test.h:#include "stdio.h"void test_a();void test_b();void test_c();...

2019-08-07 16:50:21 1615

转载 C++基础(2) - 静态库与动态库

这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上...

2019-06-27 20:15:43 1044

lisusb解决hid usb设备上报丢帧问题

利用lisusb开源库实现读取hid数据,并用libusb多缓存的方式解决了hid协议传输高频数据(例如 imu数据)时,会发生丢帧的问题。在实际项目中很常见。希望能帮到遇到相同问题的同学。 此工程是整个工程示例代码,如果是android,直接通过NDK编译,把编译好的so跟可执行问题push到设备即可运行,如果是linux或者windous系统,编译工具换一下即可。 如果在自己项目上使用此工程需要修改的点: 1. VID、PID (这个肯定得改) 2.上报的字节数大小(我用的时每次上报48个字节,你的呢) 3.数据解析(在parseData方法里,每家协议肯定不一样,你懂的 +_+ !) 主要文件: HidUsbModule.cpp HidUsbModule.h HidUsbModuleTest.cpp HidUsbProtocol.h 使用说明见:https://blog.csdn.net/kai_zone/article/details/136633615?spm=1001.2014.3001.5501

2024-03-11

高通sxr-sdk 4.0.6

高通4.0.6 sxr sdk,包含相关接口及源码文件,接口使用说明,releasenote等。 可以用来对接高通qvrservice/qxrservice,学习高通 vr相关接口功能。如从qvr获取slam pose,camera,imu等数据信息。

2023-06-25

Android Native Sensor实例(C++)

基于C++开发的Android native Sensor的实例代码,可以直接运用到实际项目中(如运用到slam算法),避免重复的造轮子,加快开发进度。示例中有各种sensor数据的获取,代码简洁,运行编译集成方便。 对应文章:https://blog.csdn.net/kai_zone/article/details/128446396

2022-12-28

Java JNI 技术手册文档

此文章纯粹实例操作,关于 jni已经有不少人不少文章讲的很清楚了,所以就不罗列理 论了。解压密码:1

2022-12-28

Linux驱动之模块化编程

本文档主要是讲解通过模块化的方法向Linux操作系统添加驱动程序,怎么去模块化编程。 解压密码:1

2022-12-27

程序员面试指南,企业常考面试题

这是一本程序员代码面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供 了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近200道真实出现过 的经典代码面试题,帮助广大程序员做充分的面试准备。“刷”完本书后,你就是“题王”!

2022-12-27

Linux 设备驱动之platform子系统

本文档主要讲解了platform总线的原理及总线设备的注册跟驱动的编写

2022-12-27

-Android三维程序设计-基于OpenGL ES的图形应用程序设计

本文档详细阐述了跟Android移动设备以及OPENGL ES开发相关的基本解决方案,主要包括ES2.0基础知识、3D建模、纹理跟着色等开发内容, 解压密码:1

2022-12-27

中断原理及实施(s5pc100)

有过裸机开发经验的工程师都很清楚中断的重要性。学习一款处 理器,异常处理机制可谓是其精髓所在,而硬件中断又是异常处理中 的一种很典型并且使用很频繁的情况。 把握这一块内容需要大家明了两个方面的内容。 ( 1) 处理器的异常处理机制(中断是处理器众多异常中的一种) ( 2) SOC 对中断的硬件支持(中断控制器) 解压密码:1

2022-12-27

linux设备驱动中断之上半部和下半部

这份文档详细的叙述了linux中断上半部跟下半部的原理,很容易理解。

2018-08-28

虚拟按键居中patch

这个文件对应博客安卓增加虚拟按键。修改布局文件,解决了虚拟按键不居中显示的问题。

2018-08-01

从零开始添加自己的硬件服务

从零开始添加自己的硬件服务,所有的文件及代码,还包括详细的说明。

2018-07-31

安卓从零添加硬件服务的测试程序

这个app代码是安卓从零添加硬件服务的测试程序,在eclipse上创建的,有需要的同学可以下载参考哟。

2018-07-31

android事件分发机制测试demo

安卓事件分发机制测试代码,事件传递从Activity--&gt;ViewGroup--&gt;View。dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent这三个函数的返回值不同,代表的事件传递的不同。

2018-07-27

AndroidInput子系统架构.pdf

Android Input子系统架构,很详细,从linux底层驱动到上层。

2017-12-26

安卓以太网,pppoe拨号上网,部分应用网路异常,网络定位不能使用

安卓以太网,pppoe拨号上网,部分应用网路异常(如陌陌),网络定位不能使用(如美团外卖无法使用定位功能)。修改framework层,模拟成wifi。

2017-12-26

安卓最新pppoe源码

在安卓7.1上已经实现了pppoe拨号上网的pppoe源码,下载直接编译使用。

2017-12-26

dropbear源码

安卓7.1和安卓5.1实测,源码可直接编译使用,dropbear实现用户名密码登录

2017-10-27

程序员简历模板下载

压缩包内容包括了大量的个类程序员简历模板,如果自己不知道怎么写或者懒得设计的,这是你最好的选择,只要把内容替换一下,一份漂亮的简历就是你的!

2017-09-21

IIC驱动读取lm75温度

文档描述了i2c驱动的架构及i2c编写过程,包括了应用的测试程序以及以读取i2c设备lm75的温度为实例。

2017-09-21

i2c驱动流程图解

linux的i2c驱动,有关重要函数分析,以及函数的跟踪。可以帮助你更好的理解i2c驱动的执行过程。

2016-02-27

空空如也

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

TA关注的人

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