自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (4)
  • 收藏
  • 关注

原创 vim配置

set nufiletype onsyntax enablesyntax onset rulerset showmatchset ignorecaseset incsearchset statusline+=%fset tabstop=4set softtabstop=4set shiftwidth=4set expandtabset cindentset autoreadset magicset autowriteset autoindentset confirm.

2021-09-07 16:16:43 167

原创 SampleWindow demo

SampleWindow.javapackage understanding.wms.samplewindow;import android.content.res.Configuration;import android.view.Surface;import android.view.View;import android.view.InputChannel;import android.view.DisplayInfo;import android.view.Gravity;i.

2021-09-07 09:56:55 225 1

原创 windows patch adb permission

patch文件给某个app授权及撤销:执行结果如下,涂掉的是包名脚本内容:grant_dl.bat@echo grant permission of sdcard rw for pkg_name@adb shell pm grant pkg_name android.permission.READ_EXTERNAL_STORAGE@adb shell pm grant pkg_name android.permission.WRITE_EXTERNAL_STORAGE@adb .

2021-05-12 14:00:24 177 1

原创 c指针练习:字符串逆序

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#include<time.h>void str_reverse(char *str){ char* start = str; char* end = str + strlen(str) - 1; while (start &l.

2021-03-30 08:32:35 173

原创 Android系统启动过程脑图

2021-03-12 16:51:37 138

原创 Android源代码模块引用三方so方法

这里以google的tensorflow库为例,在系统设置模块mk文件中引入,具体方式为:1、声明编译so库include $(CLEAR_VARS)LOCAL_MODULE := libtensorflowlite_jniLOCAL_SRC_FILES := libs/libtensorflowlite_jni.soinclude $(PREBUILT_SHARED_LIBRARY)2、修改public.libraries.txtadb pull /system/etc/publi

2020-12-07 13:09:09 749

原创 Android编译mk文件引入三方jar、aar、so

引入aar:LOCAL_STATIC_JAVA_AAR_LIBRARIES := okayrom-lib-http-1.1.0.9 \引入jar:#当前模块依赖的 Java 静态库 为引用jar库的别名,可以随便取名,一般就是用库名称就可以了。LOCAL_STATIC_JAVA_LIBRARIES := haha \##############################################include $(CLEAR_VARS)#作为预编译库的引用对象 指定p..

2020-12-05 11:29:29 678

原创 Android mk文件指定aapt參數不压缩指定资源

例:指定不压缩tflite后缀文件。LOCAL_AAPT_FLAGS += -0 "tflite"

2020-11-27 16:41:30 403

原创 ubuntu 切换python小脚本(py2.7&py3.8)

更新cscope没事干,把小脚本记录下:sw_py.sh:#!/bin/bashread -p "The version you want(2、3): " numecho "Changing to java --------->" $num#slif [[ $num -eq 2 ]];then echo "pwd"| sudo -S unlink /usr/bin/python echo "pwd"| sudo -S ln -s /usr/bin/python2.7 ...

2020-10-30 21:22:12 1292 2

原创 死循环for和while的区别

最近在看EventHub源代码,getEvents方法中设置了一个无限for(;;)循环来进行dev设备以及事件的轮询,但是为什么不用while(1)呢?于是想到应该是有某种区别,应该从汇编指令方面来看下,如下:小栗子:同样是无限循环,for和while所执行的汇编指令差的还是挺多的,所以这里使用for(;;)就不足为怪了 c文件获取到汇编代码指令:gcc -S test.c您觉得是不是这方面的区别呢?欢迎各路大神围观留言,北京骑行爱好者可以加好友,周末组队骑行!...

2020-09-23 23:18:48 463

原创 Linux内核配置编译

环境:centos6.10kernel代码:2.6.30Linux内核可定制具体步骤如下:1、清除临时文件、中间文件和配置文件make clean:删除生成文件,但是保留配置make mrproper:删除生成文件包括配置文件make distclean:删除编辑器备份和patch文件2、确定目标系统的软硬件配置情况:cpu、网卡、网络协议等。3、内核配置方式make config:命令行配置方式make menuconfig:菜单配置方式make oldconfig:在之...

2020-09-17 10:57:30 135

原创 Google原生输入法LatinIME词库扩容(Windows10环境)

去年在Linux(ubuntu)环境下针对LatinIME进行词库扩容处理,针对LatinIME的词库构建进行了一些列分析,大家可以查阅历史文章。词库扩容最近试了一下是可以的,具体流程大致如下(windows10环境):1、安装MinGw以及gcc、g++、gdb等,下载地址:e795, 安装完成配置环境变量到path(..\mingw\bin)2、进入到..\cpp\command目录进行makewindows下没有make命令的,需要到MinGw\bin目录下重命名mingw32-mak

2020-07-06 13:54:40 1582 6

原创 GBD调试谷歌拼音输入法准备工作

先要编译出来一个可执行文件,具体步骤:1、cd到目录:~/app/src/main/cpp/command下面2、输入命令:make,不报错的话这里应该会有一个可执行文件出来,如下图:3、gdb pinyinime_dictbuilder就可以了。前一阵弄过,后来忘了,记录一下,我这里报错了../share/dictbuilder.cpp:22:25: fatal error: android/log.h: No such file or directorycompilat.

2020-06-24 15:11:45 1077

原创 ubuntu16.04 compile android L error

1. installsudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev...

2019-05-29 12:53:23 238

原创 ubuntu 18.04 编译Android坑s

去除所有本地化的设置error:flex-2.5.39: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed. Aborted (core dumped)或者F...

2019-05-28 09:34:00 964 1

原创 Unix系统编程文件I/O基础知识

文件描述符对于内核而言,所有打开的文件都通过文件描述符引用,文件描述符是一个非负整数,当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符,当读、写一个文件时,使用open或create返回的文件描述符标识该文件,将其传递给read或write。按照惯例,UNIX系统shell把文件描述符0与进程的标准输入关联,文件描述符1与标准输出关联,文件描述符2与标准错误关联。在符合...

2019-05-23 21:09:50 210

转载 转载Ubuntu18.04卡死问题解决,

笔记本是带有NVIDIA独立显卡的,安装Ubuntu18.04时候没有联网,安装完成发现没有NVIDIA显卡驱动,我是先在网上找了个博客,按照博客先安装好了NVIDIA显卡驱动(自己电脑型号的驱动),但是发现还是卡死,然后参考了这篇文章得以解决:转载文章安装NVIDIA驱动配有 Nvidia 显卡的笔记本安装 ubuntu18.04 所遇到的问题与解决问题一:系统安装时卡死。系统...

2019-05-21 09:11:38 6491

原创 Android 只获取特定包名log

此命令用于在Ubuntu命令行中获取指定包名(应用)的所有log信息:adb logcat --pid=$(adb shell pidof -s pkg_name)把pkg_name换成需要过滤的应用包名即可,特此记录。StackOverFlow...

2019-05-11 15:00:00 2121 1

原创 虚存技术(上)

虚拟内存的出现是为了缓解内存不足的问题,覆盖技术:目标:是为了在较小的内存中运行较大的程序,常用于多道程序系统,与分区存储管理配合使用。原理:把程序按照其自身逻辑结构,划分为若干个功能上相对独立的程序模块,那些不会同时执行的模块共享同一块内存区域,按照时间先后来运行。1、必要部分(常用功能)的代码和数据常驻内存。2、可选部分(不常用功能)在其他程序模块装载到内存。...

2019-05-08 20:24:16 977

原创 LKD-Linux系统进程管理

本章介绍linux系统进程概念以及线程,讨论在linux内核中是如何对进程进行管理的以及进程结束流程。 关于进程的概念在操作系统概念--操作系统中的进程、线程中已经描述过,这里不在赘述,在应用层一般理解是一个应用实例是一个进程,一个进程又可以包含多个线程,但是在传统的unix系统中每个进程都是由一个线程组成的,而Linux系统内核中也有单独的对线程的实现机制:即不区分线程和进程。...

2019-04-12 15:13:56 398

原创 Google原生输入法LatinIME引擎初始化流程分析(二)

引擎初始化首先是在Java层调用native的初始化方法,Java层调用如下: private void initPinyinEngine() { byte usr_dict[]; usr_dict = new byte[MAX_PATH_FILE_LENGTH]; // Here is how we open a built-in d...

2019-04-09 11:10:33 1896

原创 Google原生输入法LatinIME词库构建流程分析(二)

在Google原生输入法LatinIME词库构建流程分析(一) 中分析LatinIME构建流程进行到了dict_trie->dict_list_->init_list这一步,然后就是构建N-gram信息了,N-gram构建过程在Google原生输入法LatinIME词库构建流程分析(三)--N-gram信息构建中进行了分析,那么接下来继续:bool DictBuilder::bu...

2019-04-04 16:36:11 840

原创 virtualbox share folder 给centos7

cd到共享的目录提示无权限:sudo usermod -a -G vboxsf 用户名

2019-04-03 15:38:57 235

原创 操作系统概念——CPU调度

2019-04-02 20:43:51 166

原创 Google原生输入法LatinIME词库构建流程分析(三)--N-gram信息构建

N-gram信息的构建在ngram.cpp中进行构建:bool NGram::build_unigram(LemmaEntry *lemma_arr, size_t lemma_num, LemmaIdType next_idx_unused) { ... //1、初始化freqs数组,lemma_arr数组元素的idx_by_hz...

2019-04-01 17:25:50 1085 1

原创 关于中文--Unicode之间互相转换流程的说明

此话题起源于输入法中汉字的存储方式,汉字在输入法中被存放在多个数组中,具体的存放格式为unicode编码存储(int数字),但是如何在网页端将某一个汉字转换成对应的unicode编码呢?这里推荐一个网站千千秀字,下面说一下具体使用流程:打开网站首页——汉字编码,然后如下图选择并输入汉字点击查询:输出的十进制中Unicode编码12295就是在数据结构中存储的样式,那么如何再反向转换呢?...

2019-04-01 12:46:27 674

原创 操作系统概念--操作系统中的进程、线程

进程是执行中的程序,它不仅仅包含程序(代码段),还包括当前的活动,通过程序计数器的值和寄存器的内容来表示,另外进程还包括堆栈段(包括临时数据,如函数参数、返回地址和局部变量)和数据段(包括全局变量)。进程还可能包括堆,是在进程执行过程中动态分配的内存,大致如下图:进程是通过进程控制块(PCB)来描述的,它包含了许多与进程相关的信息:在linux中使用结构体task_stru...

2019-03-30 13:51:37 388

原创 Google原生LatinIME输入法spl_buf_数据内容

"A\000\000\000\000\000\000aAI\000\000\000\000\000\\AN\000\000\000\000\000VANG\000\000\000\000\222AO\000\000\000\000\000qBA\000\000\000\000\000JBAI\000\000\000\000]BAN\000\000\000\000QBANG\000...

2019-03-28 19:35:01 723

原创 Google原生输入法LatinIME词库构建流程分析--相关数据结构分析

其实输入法词库相关数据结构的定义基本上都在头文件dictdef.h文件中,进入到代码目录cpp下.初始化字库,首先读取txt文件内容到数据结构lemma_arr和valid_hzs中,lemma_arr是一个数组类型为LemmaEntry,下面来看下LemmaEntry定义(cpp/include/dictdef.h)://rawdict_utf16_65105_freq.txt每一行是...

2019-03-27 19:02:40 1573 5

原创 Google原生输入法LatinIME词库构建流程分析(一)

进入到cpp目录下(pwd=.../cpp/),在command目录中有个pinyinime_dictbuilder.cpp文件,源码中可以看到main函数,这里就是词库构建的入口,接下来看下main函数源码: 25 /** 26 * Build binary dictionary model. Make sure that ___BUILD_MODEL___ is defined 2...

2019-03-27 11:19:37 3098 2

原创 linux命令

删除修改时间小于一天的文件(夹):find ./ -mtime -1 -exec rm -rf {} \;

2019-03-26 19:14:31 186

原创 算法Robert Sedgewick Java代码环境配置

在本书官网下载jar包和data文件,在Ubuntu下配置命令行编辑java代码环境依赖jar文件复制algs4.jar文件到/usr/java/packages/lib/ext/在家目录配置profile文件: 28 export CLASSPATH=$CLASSPATH:/usr/java/packages/lib/ext/algs4.jar 29 export CLASSPA...

2019-03-06 14:20:11 366

原创 Android 匿名共享内存初始化篇(三)

Ashmem初始化流程从ashmem.c的__ashmem_init方法开始,代码如下:835 static int __init ashmem_init(void)836 {837 int ret;838 839 ashmem_area_cachep = kmem_cache_create("ashmem_area_cache",840 ...

2019-03-04 19:08:48 332

原创 Android 匿名共享内存基础数据结构篇(二)

Android匿名共享内存系统架构图如上图所示,Android系统匿名共享内存(以下以Ashmem代替)以Ashmem驱动为基础,在运行时库提供了cutils library来对Ashmem驱动进行访问,同时又在Framework层提供了C++和Java类接口来访问cutils。 这篇文章主要学习kernel层ashmem的基础数据结构,先来看看Ashmem到底是什么!源码版本An...

2019-03-04 10:24:23 713

转载 windows 下载aosp

参考了这篇博客:https://blog.csdn.net/freekiteyu/article/details/70939672

2019-03-02 08:34:27 875

原创 Android源码记录

~\kernel\drivers\staging\android\ashmem.c~\kernel\drivers\staging\android\binder.c~\kernel\drivers\staging\android\logger.c~\kernel\drivers\staging\android\sync.c~\kernel\drivers\staging\andro...

2019-03-01 23:30:34 126

原创 Android 匿名共享内存demo篇(一)

Android系统的IPC方式通常为:文件、socket、binder、messenger、AIDL、ContentProvider,此外还有个Anonymous Shared Memory(匿名共享内存),这篇文章介绍Ashm基础使用相关知识。Android api27加入了SharedMemory类,27之前需要通过反射去拿到文件描述符。 demo为MainActivit...

2019-03-01 11:18:49 1429

原创 repo,可以直接复制粘贴到你的~/bin/repo文件中

#!/usr/bin/env python# repo default configuration#import osREPO_URL = os.environ.get('REPO_URL', None)if not REPO_URL: REPO_URL = 'https://gerrit.googlesource.com/git-repo'REPO_REV = 'stable'...

2019-03-01 10:00:27 3639

原创 汉语拼音常识

中文输入法中涉及到的有效音节记录音节表共计:401个【A】a(啊) ai(哀) an(安) ang(肮) ao(熬) [5个]【B】 ba(八) bai(百) ban(班) bang(帮) bao(包) bei(悲) ben(奔) beng(崩) bi(比) bian(边) biao(标)bie(别) bin(宾) bing(兵) bo(波) bu(不) [16个]【C】c...

2019-02-16 16:15:31 1484

原创 修改替换/system/framework/base

mmm framework/base/core/resmmm framework/baseadb push out/target/product/(自己的)/system/framework/framework-res.apkadb push xxxx/framework.jaradb push out/target/product/(自己的)/system/framework/ar...

2019-01-08 15:30:10 631

ubuntu 切换java版本的shell脚本文件

将文件放在home目录,修改权限sudo chmod a+x sw_java.sh,在任何目录执行:. ~/sw_java.sh输入对应的java版本回车即可,详细内容见博客地址:https://blog.csdn.net/hello_java_Android/article/details/79267509

2019-03-05

ubuntu 切换java版本profile文件

解压文件,放在home目录下,因为是隐藏文件,使用ll命令查看才能看得到,解压放到home目录后修改权限,sudo chmod a+x .profile*

2019-03-05

linux下java6/7/8

ubuntu下Java环境6 7 8,编译Android源码切换java版本

2019-03-05

ubuntu ban wa gong auto proxy pac file

Ubuntu 下 直接下载pac文件,chmod 777 在网络代理配置auto proxy ,file协议格式配置到该文件,应用到全局

2018-02-25

空空如也

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

TA关注的人

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