自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 Android.mk语法解析

什么是Android.mkAndroid.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。Android.mk文件用来告知NDK Build系统关于Source的信息。 Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。所以,请尽量少的在A...

2019-01-21 09:48:36 432

原创 动态库和静态库的特性

大师兄镇楼。O(∩_∩)O哈哈~## 什么是库库是共享程序代码的方式,一般分为静态库(static libraries)、动态库(dynamically loaded libraries)和共享库(shared libraries)。静态库静态函数库实际上就是简单的一个普通的目标文件的集合,一般来说习惯用“.a”作为文件的后缀。静态函数库,是在程序执行前就加入到目标程序中去了 。静态...

2019-01-18 16:09:05 455

原创 (Android下使用)Google Test C++单元测试框架(二)

使用TEST CASETEST() and TEST_F() implicitly register their tests with googletest. So, unlike with many other C++ testing frameworks, you don’t have to re-list all your defined tests in order to run the...

2019-01-17 20:55:13 923

原创 (Android下使用)Google Test C++单元测试框架(一)

什么是gtestgtest是一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C++单元测试框架,由google公司发布。gtest是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。官网:GoogleTest它分为好几种测试工具。依次介绍:GTest Runner...

2019-01-17 13:59:19 1643 1

原创 Ubuntu 安装流程图工具asta

astaasta是一款画流程图、时序图比较专业的软件。官网从官网下载astah professional安装包。下载wget http://cdn.change-vision.com/files/astah-professional_8.0.0.d641d4-0_all.deb执行后需要一段时间下载。安装安装使用dpkg命令:sudo dpkg -i astah-profes...

2019-01-16 10:13:23 2881

原创 Ubuntu deb软件包安装/卸载(asta)

astaasta是一款画流程图、时序图比较专业的软件。官网从官网下载astah community安装包。安装使用deb相关命令安装软件:命令说明sudo dpkg -I iptux.deb查看iptux.deb软件包的详细信息,包括软件名称、版本以及大小等(其中-I等价于–info)sudo dpkg -c iptux.deb查看iptux.deb软件包...

2019-01-15 16:26:50 1254

原创 ubuntu配置jre8

什么是jreJRE为Java Runtime Environment的简称,Java Runtime Environment(包括Java Plug-in)是Sun的产品,包括两部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机(jvm...

2019-01-10 10:58:33 1816 1

原创 linux下sed正则表达式匹配批量替换文件中的内容

sed命令介绍sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件...

2019-01-07 19:07:27 45045 1

原创 ubuntu16.04对比工具Meld安装和使用

安装sudo apt-get install meld安装完成后运行:使用运行后:根据需求选择需要的功能。比如文件比较:如果比较没有保存的内容可以选择空白比较。然后再在对应的文件里填写上要对应的内容。和Beyond Compare的使用差不多,不过界面差点。。。...

2019-01-04 10:59:26 10404

原创 android系统调试工具adb命令

查看adb的版本$ adb version查看当前PC端连接有多少设备$ adb devices获取设备的状态$ adb get-state设备的状态有 3 钟,device , offline , unknowndevice:设备正常连接offline:连接出现异常,设备无响应unknown:没有连接设备获取root$ adb root$ adb remount...

2018-12-26 19:07:53 519

原创 vim之快捷键

剪切快捷键含义dd剪切当前行nddn表示大于1的数字,剪切n行dw从光标处剪切至一个单子/单词的末尾,包括空格de从光标处剪切至一个单子/单词的末尾,不包括空格d$从当前光标剪切到行末d0从当前光标位置(不包括光标位置)剪切之行首d3l从光标位置(包括光标位置)向右剪切3个字符d5G将当前行(包括当前行)至第5行(不包...

2018-12-26 19:04:45 121 1

原创 Linux压缩库archive使用

## 读取初始化archive_read_new()Allocates and initializes a struct archive object suitable for reading from an archive.分配和初始化适合从存档中读取的struct归档对象。选择压缩或解压格式archive_read_support_format_all(struct archive...

2018-12-18 19:47:08 2991

原创 android信号量问题(sem_open、sem_close、sem_unlink)

在android下使用信号量时,需要链接libc库。但是在libc库中,函数sem_open、sem_close、sem_unlink只有声明,并未实现。可以从一下代码中找到证据。代码路径:bionic/libc/include/semaphore.h/* * Copyright (C) 2008 The Android Open Source Project * All right...

2018-12-11 16:01:37 1580 1

原创 ubuntu16.04下配置android调试工具adb

什么是adb我们口中所讲的adb是个泛指,这其中有两个工具——Fastboot和ADBFastboot:意思是快速启动。在安卓手机中fastboot是一种比recovery更底层的刷机模式。就是使用USB数据线连接手机的一种刷机模式。相对于某些系统(如ios)卡刷来说,线刷更可靠,安全。在PC端使用fastboot需要相应的fastboot工具,我们平常使用工具刷写Recovery镜像,实...

2018-12-06 20:08:23 1981

原创 linux c下log输出代码模板

## 模板模本分为两个文件:log.c和log.h.log.c/** log.c **/#include <unistd.h>#include "log.h"// log文件路径#define filepath "./ps_com_log.log" //设定时间static char * settime(char * time_s){ time_t timer=...

2018-12-05 14:51:49 950

原创 android匿名共享内存Ashmem(c库接口)

## AshmemAndroid系统的匿名共享内存Ashmem驱动程序利用了Linux的共享内存子系统导出的接口来实现。在Android系统中,匿名共享内存也是进程间通信方式的一种。相比于malloc和anonymous/named mmap等传统的内存分配机制,Ashmem的优势是通过内核驱动提供了辅助内核的内存回收算法机制(pin/unpin)。内存回收算法机制就是当你使用Ashmem...

2018-12-04 19:26:14 860

原创 ubuntu下安装微信

这个安装程序是基于node.js的。开源地址:https://github.com/geeeeeeeeek/electronic-wechat进入之后,再网页最下面点击 Download 按钮,进入下载界面:选择对应的版本进行下载下载后,使用tar命令解压:$ tar -xvf linux-x64.tar.gz $ cd electronic-wechat-linux-x64/...

2018-12-04 15:47:37 749

原创 vim之YouCompleteMe插件问题:The ycmd server SHUT DOWN (restart with ...low the instructions in the documen

YouCompleteMe插件用来自动补全代码,但是使用vim打开文件时候提示:The ycmd server SHUT DOWN (restart with …low the instructions in the documentation.解决方法如下:注意:需要使用bundle方式安装的插件才行$ cd ~$ cd .vim/bundle/YouCompleteMe/$ ....

2018-11-30 09:36:46 4357 3

原创 vim之函数跳转

从声明跳转到定义首先在程序根目录下执行:$ ctags -R 就会在根目录下生成个tags文件、如果没有安装ctags,根据提示安装即可。在当前文件夹下打开对应头文件:移动到函数名上,按下( ctrl + ] )便可以跳转到函数定义的地方:然后使用 ( ctrl + o )便可以返回去定义的地方。对应的快捷键ctrl+i 向前跳到前几次光标位置ctrl+o 向后跳到后几...

2018-11-30 09:35:19 1624

原创 vim之IDE功能配置

配置自动缩减set nuset autoindentset cindentset shiftwidth=4set softtabstop=4set tabstop=4具体含义:命令含义nu添加行号autoindent自动缩进cindent按照c语言语法缩进shiftwidth自动缩进空白字符个数softtabstoptab键...

2018-11-30 09:34:29 268 1

原创 vim之分屏使用

分屏左右分屏在普通模式下,输入::vs也可以上下分屏::sp实现左右分屏,效果如下:控制左右分屏大小在普通模式下,输入::vertical res 20控制上下分屏大小:res 20将当前屏幕大小缩减为20%:左右分屏进入进入右边的分屏编辑:ctrl+w+L进入左边的分屏编辑:ctrl+w+h退出当前分屏在普通模式下,输入::q分屏使...

2018-11-27 14:07:55 591

原创 android进程间通信之Binder学习笔记(一)

BinderBinder 是一种进程间通信机制,基于开源的 OpenBinder 实现;OpenBinder 起初由 Be Inc. 开发,后由 Plam Inc. 接手。从字面上来解释 Binder 有胶水、粘合剂的意思,顾名思义就是粘和不同的进程,使之实现通信。Android系统是基于Linux系统的,理论上应该使用Linux内置的IPC方式。Linux中的IPC方式有管道、信号量、共享...

2018-11-24 16:48:02 221

原创 android系统结构和源码版本

Android的系统架构采用了分层架构的思想,如图。从上层到底层共包括四层:1.应用层2.应用框架层3.系统库和Android虚拟机4.Linux内核应用层Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了...

2018-11-23 10:13:16 212

原创 android源码编译(ubuntu16.04 64位)

编译步骤1. 源码下载;2. 构建编译环境;3.编译源码;4.运行.编译之前首先要下载和安装repo和gitt工具。repo和gitGoogle采用Git对AOSP项目进行多仓库管理.为了方便需要,对git语句进行了封装,也就形成了repo.创建编译文件夹$ mkdir source$ cd source注意,这个文件夹所在的磁盘空余要大于100G,编译后需要很大的空间。...

2018-11-12 19:36:38 413

翻译 HIDL学习笔记之HIDL C++(第二天)

快速消息队列 (FMQ)HIDL 的远程过程调用 (RPC) 基础架构使用 Binder 机制,这意味着调用涉及开销、需要内核操作,并且可以触发调度程序操作。不过,对于必须在开销较小且无内核参与的进程之间传输数据的情况,则使用快速消息队列 (FMQ) 系统。FMQ 会创建具有所需属性的消息队列。MQDescriptorSync 或 MQDescriptorUnsync 对象可通过 HIDL ...

2018-11-06 09:46:23 5954

原创 HIDL学习笔记之HIDL C++(第一天)

最近在学习HIDL,有很多的疑惑,在这里记录一下,加深自己的理解,以下部分大多来自官网。官网:https://source.android.com/devices/architecture/hidlHIDL定义HAL 接口定义语言(简称 HIDL,发音为“hide-l”)是用于指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL)。HIDL 允许指定类型和方法调用(会汇集到接口和软件...

2018-11-02 18:19:56 3330 1

原创 autoMake工具使用实例(Hello, World!)

定义Makefile的 基本结构不是 很复杂,但当一个程序开发人员开始写Makefile时,经常会怀疑自己写的 是 否符合惯例,而且自己写的 Makefile经常和自己的 开发环境相关联,当系统环境变量或路径发生了变化后,Makefile可能还要跟着修改.这样就造成了手工书写Makefile的 诸多问题,automake恰好能很好地帮助我们解决这些问题.  使用automake,程序开发人员...

2018-11-01 19:19:51 542

原创 深度学习之卷积神经网络(六)

对于图片的识别来说,全连接网络无疑节点数太多了,对于一个28*28的图片,输入节点数就达到784个,更别说一个更大的图片。所以为了实现计算的简化以及性能的优化处理这就提出了卷积神经网络。##卷积神经网络卷积神经网络CNN的结构一般包含这几个层:1.输入层(input):用于数据的输入2.卷积层(convolution):使用卷积核进行特征提取和特征映射3.激励层:由于卷积也是一种线性运算...

2018-09-28 17:11:51 838

原创 深度学习之BP神经网络识别手写数字(五)

本节使用MNIST数据集作为输入数据。根据MNIST数据集的特性:每张图片为28*28,其中大约有60000个手写字体训练样本。因为是对数字的识别,所以输出的范围为0~9。这就类似于一个10分类的问题。##构建神经网络输入层需要28*28个节点,输出成需要10个节点。对于隐藏层的层数以及节点数的判定是一个技术活。不过对于全连接网络来说,一般隐藏层不要超过三层,当然如果层数越多,计算的难度肯...

2018-09-28 17:07:57 3755

原创 深度学习之MNIST数据集识别(四)

MNISTMNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test set) 也是同样比例的...

2018-09-28 17:06:21 1069

原创 深度学习之神经网络(反向传播算法)(三)

神经网络神经网络最开始是受生物神经系统的启发,为了模拟生物神经系统而出现的。大脑最基本的计算单元是神经元,人类的神经系统中大概有86亿的神经元,它们之间通过1014-1015的突触相连接。每个神经元从它的树突(dendrites)接受输入信号,沿着唯一的轴突(axon)产生输出信号,而轴突通过分支(branches of axon),通过突触(synapses)连接到其他神经元的树突,神经元之间...

2018-09-26 15:46:28 898

原创 深度学习之线性单元(梯度下降算法)(二)

关于线性线性的概念:“线性”=“齐次性”+“可加性”,"齐次性"是指类似于: f(ax)=af(x),"可加性"是指类似于: f(x+y)=f(x)+f(y),而对于单层感知器来说,是无法处理非线性的问题。非线性及不符合上述的条件的集合。例如异或问题:无法找到一个合适的直线,将两边分离开来。所以这时候就需要用到了delta法则。##delta法则delta 法则的关键思想是...

2018-09-26 15:40:08 911

原创 深度学习之(神经网络)单层感知器(python)(一)

感知器介绍感知器(Perceptron),是神经网络中的一个概念,在1950s由Frank Rosenblatt第一次引入。单层感知器(Single Layer Perceptron)是最简单的神经网络。它包含输入层和输出层,而输入层和输出层是直接相连的。与最早提出的MP模型不同,神经元突触权值可变,因此可以通过一定规则进行学习。可以快速、可靠地解决线性可分的问题。单层感知器由一个线性...

2018-09-20 17:49:31 1730

原创 静态寻路算法Dijkstra(python)

算法介绍迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。当然目前也有人将它用来处理物流方面,以获取代价最小的运送方案。算法思路Dijkstra算法采用的是一种贪心的策略。1.首先,声明一个数组dis来保存源点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点的集合T。2....

2018-09-20 17:47:14 815

原创 俄罗斯方块之心(cocos2d-js+html5)

对于俄罗斯方块相信小伙伴们都不陌生,下面来介绍一下最近练手的一款小作品。先看一下运行效果图:就截取了两张图,有兴趣的朋友可以去微博上查阅视频版。微博地址:http://video.weibo.com/show?fid=1034:4267117143380625好了下面介绍一下代码。首先介绍一下项目结构:相信做过web开发的都不陌生这个结构。index.html ...

2018-09-20 17:43:24 786

原创 A搜索算法(python)之八数码问题

##什么是启发式搜索算法启发式搜索(Heuristically Search)又称为有信息搜索(Informed Search),它是利用问题拥有的启发信息来引导搜索,达到减少搜索范围、降低问题复杂度的目的,这种利用启发信息的搜索过程称为启发式搜索。启发式搜索包括A算法和A*算法。启发式算法的核心思想:f(x)=g(x)+h(x)评估函数f(x)定义为:从初始节点S0出发,约束地...

2018-09-19 10:18:50 20685 5

原创 Sublime Text3 python调试之pdb

最近写关于AStar算法遇到了点问题,需要调试python程序,直接使用print太过于麻烦,(比较懒o(╥﹏╥)o,主要是工作量太大)于是乎调查了一下python调试的工具,发现这个pdb还真是方便。不多说,开始介绍:首先在Sublime Text3上安装SublimeREPL插件。安装成功后便可如下调试代码:关于pdb的相关命令:常用命令 命令 用途...

2018-09-14 16:30:51 2364

原创 A*搜索算法(python)

先了解一下什么是A*算法。 A*搜寻算法,俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC(Non-Player-ControlledCharacter)的移动计算,或线上游戏的BOT(ROBOT)的移动计算上。该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。 A*算法是一种启发式搜索算法,启...

2018-09-14 16:22:02 13264 5

原创 二叉树实现以及遍历算法实现(python)

用python实现一个二叉树,以下是实现的二叉树的图形样本:代码很简单,不再做过多解释,以下是代码:class Node: def __init__(self,value=None,left=None,right=None): self.value=value self.left=left self.right...

2018-09-14 16:20:41 294

原创 python练习之查找一个文件中的字符串是否在另一个文件中存在

不得不说正则是个好东西。没错这次又用到正则表达式。 直接上代码:# -*- coding: UTF-8 -*-import re #使用正则库# 打开文件fo = open("hello.txt", "r");co = open("world.txt", "r");coli...

2018-09-14 10:20:30 10387 1

空空如也

空空如也

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

TA关注的人

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