<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[晨曦天下]]></title><description><![CDATA[积跬步至千里 九层台始累土]]></description><link>https://blog.csdn.net/chexitianxia</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; chexitianxia]]></copyright><item><title><![CDATA[Android NDK编译so并调用(转)与源码下编译.so文件并调用]]></title><link>https://blog.csdn.net/chexitianxia/article/details/114704157</link><guid>https://blog.csdn.net/chexitianxia/article/details/114704157</guid><author>chexitianxia</author><pubDate>Mon, 15 Mar 2021 22:00:55 +0800</pubDate><description><![CDATA[https://www.jianshu.com/p/bc2b5dd88d61

 博主用NDK编译出来的so是可以导入使用的。




]]></description><category></category></item><item><title><![CDATA[Android.mk文件编译可执行文件]]></title><link>https://blog.csdn.net/chexitianxia/article/details/114537128</link><guid>https://blog.csdn.net/chexitianxia/article/details/114537128</guid><author>chexitianxia</author><pubDate>Mon, 15 Mar 2021 21:01:07 +0800</pubDate><description><![CDATA[环境Ubuntu 16.04.7

下载的源码android9

1、编译可执行文件

  源代码位置：/home/dongying/android9/frameworks/base/cmds/test/hello.cpp

  hello.cpp


#include &lt;iostream&gt;
using namespace std;
 
int main() {
        cout &lt;&lt; "Hello World!" &lt;&lt; endl; 
        ...]]></description><category></category></item><item><title><![CDATA[Android源代码编译完成之后运行模拟器]]></title><link>https://blog.csdn.net/chexitianxia/article/details/114386174</link><guid>https://blog.csdn.net/chexitianxia/article/details/114386174</guid><author>chexitianxia</author><pubDate>Fri, 05 Mar 2021 11:00:55 +0800</pubDate><description><![CDATA[转载：https://blog.csdn.net/pcsxk/article/details/52016739
]]></description><category></category></item><item><title><![CDATA[Ubuntu 16.04.7编译android9]]></title><link>https://blog.csdn.net/chexitianxia/article/details/111674602</link><guid>https://blog.csdn.net/chexitianxia/article/details/111674602</guid><author>chexitianxia</author><pubDate>Thu, 04 Mar 2021 21:37:27 +0800</pubDate><description><![CDATA[1、安装openjdk

   sudo add-apt-repository ppa:openjdk-r/ppa
   sudo apt-get update
   sudo apt-get install openjdk-8-jdk

2、配置JDK环境变量

  sudo vim /etc/profile
   在该文件最下方加入如下代码：
   JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
   PATH=...]]></description><category></category></item><item><title><![CDATA[android Jni开发 minicap在win上编译--------5]]></title><link>https://blog.csdn.net/chexitianxia/article/details/114171500</link><guid>https://blog.csdn.net/chexitianxia/article/details/114171500</guid><author>chexitianxia</author><pubDate>Mon, 01 Mar 2021 21:24:03 +0800</pubDate><description><![CDATA[部分内容采自：https://blog.csdn.net/Sunxiaolin2016/article/details/90697555

1、通过git下载minicap源码：

  win环境下：git clonehttps://github.com/openstf/minicap.git

2、micicap项目还依赖于libjpeg-turbo，首先我们需要在minicap引入libjpeg-turbo项目源码：

  cd minicap

  git submodule in...]]></description><category></category></item><item><title><![CDATA[android Jni开发-实战篇(CMake) --------------4]]></title><link>https://blog.csdn.net/chexitianxia/article/details/114123004</link><guid>https://blog.csdn.net/chexitianxia/article/details/114123004</guid><author>chexitianxia</author><pubDate>Fri, 26 Feb 2021 13:53:32 +0800</pubDate><description><![CDATA[本文章转自：https://blog.csdn.net/u013564742/article/details/86530791

本例demo下载地址：JniDemo下载

目标：
实现一个简单的jni函数sum(int a, int b)，返回a+b的结果。一个稍微复杂点的jni函数twoSum(int nums[], int target)，实现的是leetcode上的一个题目TwoSum，内容是给定数组及目标数字，返回符合目标数字的2个数的下标（数组类型）。

先看一下项目结构图,和JniDemo中的]]></description><category></category></item><item><title><![CDATA[android jni开发基础讲解-----2]]></title><link>https://blog.csdn.net/chexitianxia/article/details/114079129</link><guid>https://blog.csdn.net/chexitianxia/article/details/114079129</guid><author>chexitianxia</author><pubDate>Thu, 25 Feb 2021 15:09:02 +0800</pubDate><description><![CDATA[1、E:\androidTest\JniCMake\app\build.gradle 该文件里加载了如下内容


   externalNativeBuild {
        cmake {
            path "src/main/cpp/CMakeLists.txt"
            version "3.10.2"
        }
    }

     1）加载了CMakeLists.txt文件，还指定了版本，3.10.2是系统自带的一个版本，居说在日志显示上...]]></description><category></category></item><item><title><![CDATA[android jni开发基础配置篇(CMake)---1]]></title><link>https://blog.csdn.net/chexitianxia/article/details/114002331</link><guid>https://blog.csdn.net/chexitianxia/article/details/114002331</guid><author>chexitianxia</author><pubDate>Wed, 24 Feb 2021 20:49:53 +0800</pubDate><description><![CDATA[1、配置NDK环境

  方法一:用AS工具--tools---SDK Manager 下载NDK,自己下载的最好放在SDK目录中

  方法二：https://developer.android.google.cn/ndk/downloads/ 网上直接下载NDK

  在系统环境变量path中加入D:\androidSDK\ndk-bundle\build 并使其生效

2、用AS新建一个项目

  默认的空项目即可

3、把项目显示方式调整为:project

4、在文件loc...]]></description><category></category></item><item><title><![CDATA[android源码下载]]></title><link>https://blog.csdn.net/chexitianxia/article/details/111590592</link><guid>https://blog.csdn.net/chexitianxia/article/details/111590592</guid><author>chexitianxia</author><pubDate>Fri, 25 Dec 2020 08:46:59 +0800</pubDate><description><![CDATA[1、环境
  Ubuntu 14.04.6  虚拟机

2、安装rope

  1、切换普通用户

  2、cd /home/用户家目录

  3、mkdir ~/bin 新建目录

  4、PATH=~/bin:$PATH 加到路径中

  5、curl https://storage.googleapis.com/git-repo-downloads/repo &gt; ~/bin/repo   这步有时候会不成功，断掉，可以重新操作直到成功

 ...]]></description><category></category></item><item><title><![CDATA[JSONObject j=JSONObject.fromObject(map) 这部分后就没反应了，无任何异常抛出]]></title><link>https://blog.csdn.net/chexitianxia/article/details/6843807</link><guid>https://blog.csdn.net/chexitianxia/article/details/6843807</guid><author>chexitianxia</author><pubDate>Mon, 09 Nov 2020 19:22:45 +0800</pubDate><description><![CDATA[程序运行到 JSONObject j=JSONObject.fromObject(map) 这部分后就没反应了，无任何异常抛出 

这句话前面和后面都加上了打印信息，运行结果是前面有打印，后面没有打印，也没有任何异常抛出，就这么莫名其妙的断掉了。 

有人说要有五个包]]></description><category></category></item><item><title><![CDATA[LINUX系统学习二（进程共享、exec族函数、孤儿进程与僵尸进程、wait、waitpid）]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108601276</link><guid>https://blog.csdn.net/chexitianxia/article/details/108601276</guid><author>chexitianxia</author><pubDate>Tue, 15 Sep 2020 15:57:39 +0800</pubDate><description><![CDATA[1、进程共享

  1、父子相同处：全局变量、data、text、栈、环境变量、用户ID、宿主目录、进程工作目录、信号处理方式。。。

  2、父子不同处：进程ID 、fork返回值、父进程ID、进程运行时间、闹钟（定时器）、未决信号集

  3、实际上父子进程间遵循读时共享写时复制的原则，来节省内存开销。

示例


[root@VM_0_5_centos test3]# more shared.c 
#include &lt;stdio.h&gt;
#include &lt;unist...]]></description><category></category></item><item><title><![CDATA[LINUX系统学习一（进程、MMU,环境变量、getenv、fork、getpid/getppid、ps、kill）]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108433529</link><guid>https://blog.csdn.net/chexitianxia/article/details/108433529</guid><author>chexitianxia</author><pubDate>Sun, 06 Sep 2020 17:00:24 +0800</pubDate><description><![CDATA[1、进程的概念

编译好的二进制文件叫程序

进行是运行起来的程序

站在程序员的角度：运行一系列指令的过程

站在操作系统角度：分配系统资源的基本单位

区别：

程序占用磁盘，不占用系统资源
	进程占用系统资源
	一个程序对应多个进程，可以同时运行多个，一个进程对应一个程序
	程序没有生命周期，进程有生命周期
2、进程的过程



3、进程的状态



4、MMU的作用

1、虚拟内存和物理内存的映射

2、修改内存访问级别

3、用户空间映射到物理内在是独立的



5、进程控制块PCB

root@]]></description><category></category></item><item><title><![CDATA[LINUX命令基础记录八（chown、rename、getcwd、chdir、mkdir、redir、errno、dup2和dup ）]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108347432</link><guid>https://blog.csdn.net/chexitianxia/article/details/108347432</guid><author>chexitianxia</author><pubDate>Tue, 01 Sep 2020 17:44:56 +0800</pubDate><description><![CDATA[1、chown改变用户和组

int chown(const char *path, uid_t owner, gid_t group);

Path 文件名

owner用户ID，/etc/passwd 

group 组ID ,/etc/group

2、rename重命名文件或目录

int rename(const char *oldpath, const char *newpath);

oldpath旧文件

newpath新文件


[root@VM_0_5_centos test2]# m.]]></description><category></category></item><item><title><![CDATA[LINUX命令基础记录七(系统API和库函数：stat、access、truncate、link、symlink、readlink、unlink)]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108282912</link><guid>https://blog.csdn.net/chexitianxia/article/details/108282912</guid><author>chexitianxia</author><pubDate>Fri, 28 Aug 2020 16:58:50 +0800</pubDate><description><![CDATA[1、系统能同时打开最大的文件数


[root@VM_0_5_centos test2]# more openmax.c 
#include &lt;stdio.h&gt;
#include &lt;unistd.h&gt;
#include &lt;sys/stat.h&gt;
#include&lt;sys/types.h&gt;
#include&lt;fcntl.h&gt;
int main(){
        int num=3;
        char filename[128]={0};
]]></description><category></category></item><item><title><![CDATA[LINUX命令基础记录六(系统API和库函数：open、close、read、write、lseek、fcntl)]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108222454</link><guid>https://blog.csdn.net/chexitianxia/article/details/108222454</guid><author>chexitianxia</author><pubDate>Tue, 25 Aug 2020 15:48:44 +0800</pubDate><description><![CDATA[1、文件IO:open

root@iZwz92i2y5nf0vblrdwo90Z:~# man 2 open

int open(const char *pathname, int flags);

int open(const char *pathname, int flags, mode_t mode);

pathname---文件名

flags-------必选项

    O_RDONLY只读

    O_WRONLY只写

    O_RDWR...]]></description><category></category></item><item><title><![CDATA[LINUX命令基础记录五(gdb)]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108200439</link><guid>https://blog.csdn.net/chexitianxia/article/details/108200439</guid><author>chexitianxia</author><pubDate>Mon, 24 Aug 2020 15:39:33 +0800</pubDate><description><![CDATA[1、使用gdb:编译的时候加-g参数


[root@VM_0_5_centos test]# gcc add.c main.c -o app -I ./include -g
1、启动gdb:gdb app（对应可执行程序名）
[root@VM_0_5_centos test]# gdb app
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-80.el7
Copyright (C) 2013 Free Software Foundation, Inc.
Licen]]></description><category></category></item><item><title><![CDATA[LINUX命令基础记录四（Makefile）]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108151658</link><guid>https://blog.csdn.net/chexitianxia/article/details/108151658</guid><author>chexitianxia</author><pubDate>Fri, 21 Aug 2020 17:29:15 +0800</pubDate><description><![CDATA[1.Makefile的命名规则

Makefile

makefile

2.makefile的三要素

目标

依赖

规则命令

3.makefile编写 第一版

[root@VM_0_5_centos test]# tree

|-- add.c

|-- div.c

|-- include

| `-- head.h

|-- lib

|-- main.c

|-- mul.c

`-- sub.c

写法：

目标:依赖

tab键 规则命令


makefile...]]></description><category></category></item><item><title><![CDATA[LINUX命令基础记录三（gcc 使用）]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108127958</link><guid>https://blog.csdn.net/chexitianxia/article/details/108127958</guid><author>chexitianxia</author><pubDate>Thu, 20 Aug 2020 17:12:54 +0800</pubDate><description><![CDATA[gcc工作流程​
	
	

	gcc也可以一步生成执行文件
	

[root@VM_0_5_centos test_c]# tree

|-- add.c

|-- app

`-- include

`-- head.h


add.c
#include &lt;stdio.h&gt;
#include "head.h"

int main(void){
        int c;
        int a=10,b=20;
#ifdef DEBUG
        printf("hello wor]]></description><category></category></item><item><title><![CDATA[LINUX命令基础记录二（vim）]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108081844</link><guid>https://blog.csdn.net/chexitianxia/article/details/108081844</guid><author>chexitianxia</author><pubDate>Tue, 18 Aug 2020 16:57:08 +0800</pubDate><description><![CDATA[vi与vim，vim是vi增强版

1、vim查看帮助

[root@VM_0_5_centos ~]# vimtutor

2、移动光标

←h ↑k →l ↓j 

方向键也可以

3、移到行首

直接按0

4、移到行尾

Shift+4

5、移到文件头

dd

6、移到文件尾

G

7、删除光标处

x

8、恢复删除

u

9、删除光标前

X

10、整行删

dd

11、删除单词

dw

12、删除光标到行首

d0

13、删除光标到行尾

...]]></description><category></category></item><item><title><![CDATA[LINUX命令基础记录一]]></title><link>https://blog.csdn.net/chexitianxia/article/details/108075838</link><guid>https://blog.csdn.net/chexitianxia/article/details/108075838</guid><author>chexitianxia</author><pubDate>Tue, 18 Aug 2020 14:14:23 +0800</pubDate><description><![CDATA[1、查看系统有哪些shell

[root@VM_0_16_centos ~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash //默认使用的

/usr/sbin/nologin

/bin/tcsh

/bin/csh

2、查看历史使用过的命令

[root@VM_0_16_centos ~]# history

3、查看文件信息

[root@VM_0_16_centos ~]# ls..]]></description><category></category></item></channel></rss>