4 墨尘深巷

尚未进行身份认证

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

等级
TA的排名 1w+

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

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

2018-08-09 10:08:40

C++: Singleton单例模式

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

2019-11-16 15:06:16

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

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

2019-11-06 12:49:44

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

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

2019-11-06 09:52:10

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

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

2019-11-05 10:09:54

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

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

2019-10-29 16:28:09

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:32:07

Camera结构原理

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

2019-08-27 18:24:05

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

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

C/C++静态库与动态库

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

2019-06-27 20:15:43

如何编译Android使用的so并调用实例

一. 定义:1.什么是NDK? NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译...

2019-06-27 09:11:22

string、const char*、 char* 、char[]相互转换

string、const char*、 char* 、char[]四者类型经常会需要转化。一:转化总结形式如下:使用时,要对源格式和目标格式进行初始化。源格式赋值为具体的内容,目标格式赋值为空。 源格式 目标格式 string const char* char* char[...

2019-06-13 16:15:55

APK反编译和重新打包

在刚开始安卓逆向时遇到了一个很坑爹的问题,就是对apk进行反编译后不能重新打包,查了一些资料,这里就简单说一下用apktool进行解包和打包的整个过程。apktool:https://ibotpeaches.github.io/Apktool/首先把一个apk和apktool放到同一目录下,打开shell(我这里是powershell,用平常的shell也一样),...

2019-05-09 14:15:19

JDK安装、java环境配置

JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库.它包括Java虚拟机(jvm)、Java核心类库...

2019-04-24 10:01:25

安卓应用crash分析定位

安卓应用使用自己编译的库文件,出现crash log如下: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: 'samsung/zerofltectc/zerofltectc:6.0.1/MMB29K/G9209KEU2DPG1:user/release-k...

2019-01-22 10:07:30

objdump与objcopy使用详解

我们在 Linux 下运行一个程序,有时会无法启动,报缺少某某库。这时需要查看可执行程序或者动态库中的符号表,动态库的依赖项, Linux 有现成的工具可用:objdump 。有时我们拿到一个静态库,想调用其中的函数,而某些函数作用域非全局,也可以通过修改符号来达到目的。 Linux 有现成的工具可用: objcopy 。下面我们来看看具体怎么使用。objd...

2018-10-22 20:37:35

cmake快速入门

本博文的大概框架:1,cmake的介绍,下载,安装和使用2,cmake的手册详解,我关注了-C和-G的使用3,在Linux中构建cmake的工程第一个问题:cmake介绍,下载和安装以及使用:https://fukun.org/archives/0421949.htmlcmake是kitware公司以及一些开源开发者在开发几个工具套件(VTK)的...

2018-09-12 10:10:16

Android系统启动-SystemServer下篇

基于Android 6.0的源码剖析, 分析Android启动过程的system_server进程frameworks/base/services/java/com/android/server/ - SystemServer.javaframeworks/base/services/core/java/com/android/server/ - SystemServiceM...

2018-09-07 15:30:51

java与C/C++基本数据类型所占字节的对比

  序言:     C跟java的基本数据所占位数的差异,比如32位系统,java long型占多少位,c的long型占多少位,64位呢?所以在这里把相关涉及的知识整理总结一下,防止遗忘。 C/C++ :  1字节=8位  1k=1024字节=2^10  1m=1024k  1g=1024m  买硬盘实际内存小是因为厂商当1000换算的      这个基本的...

2018-09-06 09:26:28

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。