自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (3)
  • 收藏
  • 关注

原创 SeLinux权限配置心得总结

SeLinux权限配置心得总结1、编译命令:make selinux_policy或者cd system/sepolicymm2、编译后生成策略文件的路径:需要替换验证的文件,替换后要修改读写执行权限跟之前一样:out\target\product\platform\root\plat_*out\target\product\platform\root\nonplat_*out\target\product\platform\vendor\etc\selinux\precompile

2021-02-20 20:11:38 4411

原创 JAVA数据结构及算法--解析算术表达式

JAVA数据结构及算法–解析算术表达式1、本章内容主要参考于《Java数据结构和算法第二版》这本书。平时说的算术表达式就是中缀表达式,对计算机的算法来说如果要直接求算术表达式的值是比较困难的,所以可以按下面两步来实现算法会更容易:将算术表达式转换成另一种形式:后缀表达式。可以参考《中缀表达式转后缀表达式》计算后缀表达式的值。会使用到栈的知识,可以参考《JAVA数据结构及算法–Stack应...

2020-04-27 15:59:58 1723

原创 JAVA数据结构及算法--Queue分析及应用

Queue翻译过来就是队列的意思,队列简单的理解就是像我们排队买车票,排在队伍最前面的会先买到票并离开买票的队伍,其他想买票的人会从队伍后面加进来。所以队列是先进先出(FIFO)的数据结构。本章内容主要参考于《Java数据结构和算法第二版》这本书。1、定义常用的队列接口package queue;/** * 队列的操作接口定义 * @param <E> 泛型,匹配各种数...

2020-04-24 16:39:18 258

原创 JAVA数据结构及算法--Android中Activity的四种启动模式

在《JAVA数据结构及算法--Stack分析》和《JAVA数据结构及算法--Stack应用》文章中分析了JAVA源码中栈的实现及实现自定义的栈及栈的简单应用(单词逆序和分隔符匹配),接下来介绍栈在Android中的应用。Android中Activity的四种启动模式分别是:standard,singleTop,singleTask,singleInstance。standard,singleTop...

2020-04-22 19:24:54 204

原创 JAVA数据结构及算法--Stack应用

在《JAVA数据结构及算法--Stack分析》这篇文章中分析了源码Stack是怎么实现的,接下来要分析怎么自己去实现栈,栈有那些应用。本章内容主要参考于《Java数据结构和算法第二版》这本书。1、通过基本数据类型long数组实现栈。package stack;/** * 通过long的数组实现自定义的栈 * */public class StackX { private in...

2020-04-21 16:06:02 221

原创 JAVA数据结构及算法--Stack分析

步骤1、在对Stack进行分析前,先看看它是怎么使用的。步骤2、通过提取源码Stack里面的代码来实现自定义的栈MyStack。import java.util.EmptyStackException;import java.util.Vector;/** * MyStack是一个后进先出(LIFO)栈,继承于Vector类;MyStack也是从 * 源码Stack.jav...

2020-04-20 14:11:06 225

原创 中缀表达式转后缀表达式

1、定义中缀表达式:一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法。后缀表达式定义:逆波兰表达式又叫做后缀表达式。逆波兰表示法是波兰逻辑学家J・卢卡西维兹(J・ Lukasewicz)于1929年首先提出的一种表达式的表示方法[1]。后来,人们就把用这种表示法写出的表达式称作“逆波兰表达式”。逆波兰表达式把...

2020-04-19 17:57:23 241

原创 UART通信之面向对象编程二(OOP)——数据封装

在《UART通信之面向对象编程(OOP)》这篇文章的基础上进行UART数据封装及使用线程来收发串口数据。下面一个一个介绍。1、使用队列的方式来存储串口数据,关于队列可以参考《数据结构——队列C/C++》。#ifndef __QUEUE_H__#define __QUEUE_H__#include <inttypes.h>#include <stdbool.h&gt...

2020-04-17 17:16:58 1112

原创 线程创建汇总——JAVA/C/C++

很多时候在处理一些耗时操作时,需要通过开辟线程来处理,这样不会阻塞主线程的执行。1、JAVA的线程创建。2、C中的创建线程,编译需要加线程参数,如:gcc cthread.c -o cthread -lpthread#include <stdio.h>#include <pthread.h>#include <unistd.h>void...

2020-04-16 19:38:03 153

原创 数据结构——队列C/C++

队列是一种先进先出(FIFO)的数据结构,本文将使用双向循环链表来实现队列。对双向循环链表不太了解的,可以参考《c中的双向链表实现》跟《JAVA数据结构及算法--LinkedList分析》。1、定义队列的数据结构及队列操作相关的函数#ifndef __QUEUE_H__#define __QUEUE_H__#include <inttypes.h>#include &l...

2020-04-14 11:20:42 205

原创 JAVA数据结构及算法--LinkedList分析

1、之前有写个一个c的双向循环列表,有兴趣的可以参考《c中的双向链表实现》。当时不太明白JAVA的指向问题,所以一直没有写java的双链表实现。C中'->'跟JAVA中‘.’其实是一样的。JAVA中通过赋值的方式来实现指向的问题。下面先看看LinkedList的使用及JAVA类似C中指针的问题。2、双向循环列表的数据结构如下:3、从源码LinkedList中提取代码,实现简化...

2020-04-12 15:19:17 134

原创 UART通信之面向对象编程(OOP)

上一篇介绍了UART的简单通信实现,不太了解通信过程的可以先参考上一篇文章《最简单的一个UART通信实例》。上一篇的《最简单的一个UART通信实例》是面向过程编程,本编将介绍UART通信的面向对象编程。1、抽象接口定义#ifndef MYUART_HARDINTERFACE_H#define MYUART_HARDINTERFACE_H#include <fcntl.h&gt...

2020-04-09 14:27:56 578

原创 最简单的一个UART通信实例

1、What’s UART?UART全称为Universal Asynchronous Receiver/Transmitter,即通用异步收发器,是串行通信一种通信技术,常用于单片机和电脑之间以及单片机和单片机之间的板级通信。下面是串口通信硬件连接图:2、使用的的系统函数int tcgetattr(int fd, struct termios *termios_p); //...

2020-04-01 15:25:26 1754

原创 Recovery中常用到的系统函数汇总(一)

最近在研究Android 5.1的recovery升级,发现里面的很多系统函数都不是很熟悉,现在做一下笔记,方便自己及有需要的朋友。1、库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。下面的函数跟strcmp类似,返回值情况类似。C 库函数 int strncmp(const...

2020-03-16 16:16:51 350

原创 人工智能之概率轮--5个灯泡的概率问题

题目:假设某电路由5个灯泡组装而成,连接方式如图所示。假设5个灯泡在某时间范围内各自都能正常工作的概率都是p,且它们正常工作的事件是相互独立的,请问该电路在该时间范围内正常工作的概率是多少?答:第一种分析方法:设2,3,1,4,5,分别为A,B,C,D,E。那么有:P(A)=P(B)=P(C)=P(D)=P(E)=P元件C是关键,如果C正常工作,那么就会有...

2020-01-08 17:39:15 707

原创 人工智能之Python基础篇总结

逻辑运算and or not2、身份运算符3、修改元组元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:4、删除元组元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:5、字典键的特性字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。两...

2020-01-07 15:41:31 831

原创 数据结构--单链表C/C++

最近在学习数据结构,其中有介绍单链表跟单循环链表的,现在复习一下。首先要定义一下数据结构(节点),如下:typedef int DataType; //方便后面修改数据类型,有点像C++/JAVA中的泛型typedef struct Node { DataType data; struct Node *next;}Node;单链表:接下来是定义一个获取链表某个位置节点...

2019-03-11 18:04:55 181

原创 Android JNI 访问Java中的成员变量及非native方法

JNI的头文件生成及编译请参考《Android中的JNI使用指南一》1、修改Java类中的成员变量。通过HelloJNI.java类中changeNum()本地方法来修改成员number的值。number初始化为0,通过本地方法changeNum()修改为100。HelloJNI.java类中定义如下:changeNum()在C++中的实现,如下://修改java类中的成员变量(...

2019-03-05 17:32:20 417

原创 Android中的JNI使用指南一

一、简介JNI全称是Java Native Interface(Java本地接口)单词首字母的缩写,本地接口就是指用C和C++开发的接口。由于JNI是JVM规范中的一部份,因此可以将我们写的JNI程序在任何实现了JNI规范的Java虚拟机中运行。同时,这个特性使我们可以复用以前用C/C++写的大量代码。   开发JNI程序会受到系统环境的限制,因为用C/C++语言写出来的代码或模块,编译过...

2019-02-25 13:47:05 277

原创 HIDL最全编译流程

想了解HIDL介绍的可以参考《HIDL概述》,本篇文章主要介绍HIDL的详细编译流程及简单的客户端应用(C++跟Android客户端的应用)。一、准备工作整一套源码,Android O或者Android P的 保证全套代码已经全编译,原生代码全编译命令source build/envset.sh lunch make   3、hidl-gen工具已经安装,安装命令make h...

2018-11-27 10:49:07 21304

原创 HIDL概述

HIDL背景Treble 是 Google Android 团队的一项重大项目,意在 Android 操作系统框架在架构方面的一项重大改变,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。Android 7.x 及更早版本中没有正式的供应商接口,因此设备制造商必须更新大量 Android 代码才能将设备更新到新版 Android 系统:图1 Treble ...

2018-11-27 10:28:15 23669

原创 常用的两种handler调用方法

一、Handler、Thread、HandlerThread三者之间的关系如下:1、Handler:在android中负责发送和处理消息,通过它可以实现其他支线线程与主线程之间的消息通讯。2、Thread:Java进程中执行运算的最小单位,亦即执行处理机调度的基本单位。某一进程中一路单独运行的程序。3、HandlerThread:一个继承自Thread的类HandlerThread。...

2018-10-23 14:48:17 7380

原创 后台应用服务弹自定义Toast框

     之前看到自己的手机应用突然会弹出一个提示框感到有点神奇,不知道是怎么做到的,后面才了解到是后台服务弹的。后台服务弹Toast框其实跟Activity界面差不多,下面先来看看项目SimpleJarService结构:├── AndroidManifest.xml├── Android.mk├── libs│  ├── android-support-v4.jar│  ├── f...

2018-10-19 13:53:33 913

原创 在Android系统中实现AIDL 自定义对象传递

  今天要在《在Android系统中实现AIDL接口回调》这篇文章的基础上实现AIDL自定义对象的传递功能。还是上一篇说到的三个项目:├── SimpleJar├── SimpleJarClient└── SimpleJarService一、在SimpleJar项目中添加aidl中要传递的对象StudentInfo.aidl跟StudentInfo.java,具体如下: ├── A...

2018-10-18 16:15:50 2479

原创 Android中通过反射的方式判断U盘是否真正挂载

       由于StorageManager.java类中的getVolumeList()和getVolumeState(String mountPoint)方法是hide(隐藏)的,所以需要通过反射的方式获取对应的存储信息。源码./frameworks/base/core/java/android/os/storage/StorageManager.java类中的getVolumeList()...

2018-10-16 16:03:35 3279

原创 在Android系统中实现AIDL接口回调

   在文章《在Android系统中实现AIDL功能》中实现了aidl的接口调用,但是有时候客户端调用完接口函数后希望服务端有数据返回,这时候就需要定义回调函数。在《在Android系统中实现AIDL功能》的基础上实现接口的回调。还是分三个项目实现,如下图:├── SimpleJar├── SimpleJarClient└── SimpleJarService一、定义回调需要的aidl...

2018-10-15 18:43:57 8536

原创 在Android系统中实现AIDL功能

   之前实现AIDL的功能都是通过eclipse或者android studio工具实现,最近由于项目需要,需要系统层提供接口给应用层使用,所以想到使用AIDL。下面已一个非常简单的Demo来说明在Android系统平台生成AIDL的jar供应用层使用。一、AIDL的jar制作首先新建一个android项目来用生产aidl的jar包,项目结构如下:gunder@gunder:/mnt...

2018-09-28 18:46:39 2592

原创 Android 删除sdcard目录中的某些目录文件

1、通过FileFilter()方法找到要删除的目录,如: //返回要删除的目录列表 File[] childFiles = part.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { String name = pathname.getNa...

2018-08-03 15:56:41 4463

原创 addr2line快速定位进程异常位置

通过addr2line工具快速定位到C/C++程序出错的位置,方便查找问题根因

2022-11-10 20:50:52 5078 1

原创 Putty连不上新安装的Ubuntu 16.04.6

今天重新安装了Ubuntu 16.04.6,发现putty连接不上了。解决方法如下:1. 首先检验linux系统是否安装了ssh-server在终端中输入:ssh localhost若出现:ssh: connect to host localhost port 22: Connection refused则说明没有安装,需手动安装 SSH。2. 安装 SSH2.1 安...

2020-02-18 12:23:11 1289

原创 工作中常用的命令

一、cmd命令:Activity启动:adb shell am start -n com.wedrive.android.welink/com.wedrive.android.welink.MainActivityService启动:adb shell am startservice -n com.iflytek.cutefly.speechclient/com.iflytek.aut...

2018-10-10 17:32:15 362

原创 在Android系统中将AIDL功能集成到framework.jar中

上一篇文章实现了AIDL在packages/apps目录编译成jar包供应用层的服务端跟客户端使用,具体参考《在Android系统中实现AIDL功能 》。仍然使用《 在Android系统中实现AIDL功能 》中的SimpleJar项目,目录结构如下:gunder@gunder:/mnt/hgfs/ubuntuShare/aidl/SimpleJar$ tree.├── Android.mk...

2018-09-29 14:06:57 1171

原创 Android原生的JNI学习

1、JNI是Android中Java调用C/C++中的函数的一种实现。在源码中有着JNI的一些简单的实列,路径是/development/ndk/samples,如图:今天学习的是two-libs这个项目,该项目的JNI目录是这样的: first.c里面只有一个实现加法的函数,second.c调用了first.c里面的方法,并且会将返回值返回给Java调用层。first.c:...

2018-08-10 18:11:49 176

原创 c中的双向链表实现

1、之前在培训公司学习了用C语言实现双向链表的知识,现在有空重新写一遍。首先定义一下头文件list.h。 1 #ifndef __LIST_H__ 2 #define __LIST_H__ 3 4 #include &lt;stdio.h&gt; 5 #include &lt;stdlib.h&gt; 6 #include &lt;string.h&gt; 7 ...

2018-08-10 11:52:46 3207

原创 Android 中的Java跟C/C++的Binder通信

1、大家都知道Android中进程间的通信是通过binder来实现的,这里主要是讲代码中的简单实现。如果想了解binder的通信细节或实现原理,可以参考https://blog.csdn.net/jmq_0000/article/details/7349844。个人觉得这篇博客讲的还是很不错的。现在就开始demo的介绍,该demo主要是通过java传递文件路径给C++来实现删除该路径,目的是为了了...

2018-08-07 17:54:49 3502

原创 Android中C/C++的日志打印

1、对于很多Android开发人员来说,Android的标准日志打印已经使用的非常习惯,如果在调试C/C++时使用的是printf或者cout这种方式打印日志,那查找起来会非常不舒服,为了使自己舒服起来,还是有必要使用android标准的日志方式打印日志的。先看一下效果:2、新建一个deleteFile.cpp文件,导入android标准日志打印的头文件&lt;android/log.h&...

2018-08-04 16:27:51 10343

原创 Android中java的日志LOG自定义打印

1、通过StackTraceElement获取方法的类名、方法名、文件名以及调用的行数。private static String getPrefix(){ StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[4]; String className = st...

2018-08-03 21:33:31 2338

JNI学习资料

JNI的使用指南,可以帮助想了解jni如何使用的朋友,里面有函数的简单调用

2019-02-25

机顶盒launcher

机顶盒luancher代码,下载后导入项目时记得把java4_jar添加进去。该代码可以作为学习用。

2014-09-12

c++面试宝典

C++中很多面试需要注意的地方,可以帮助面试C++的朋友更好的面试

2014-01-02

空空如也

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

TA关注的人

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