<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[camel@Y blog]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hello_java_Android</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hello_java_Android]]></copyright><item><title><![CDATA[vim配置]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/120160548</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/120160548</guid><author>hello_java_Android</author><pubDate>Tue, 07 Sep 2021 16:16:43 +0800</pubDate><description><![CDATA[set nu
filetype on
syntax enable
syntax on

set ruler
set showmatch
set ignorecase
set incsearch
set statusline+=%f
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set cindent
set autoread
set magic
set autowrite
set autoindent
set confirm
.]]></description><category></category></item><item><title><![CDATA[SampleWindow demo]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/120151818</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/120151818</guid><author>hello_java_Android</author><pubDate>Tue, 07 Sep 2021 09:56:55 +0800</pubDate><description><![CDATA[SampleWindow.java


package 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.]]></description><category></category></item><item><title><![CDATA[windows  patch adb   permission]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/116705621</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/116705621</guid><author>hello_java_Android</author><pubDate>Wed, 12 May 2021 14:00:24 +0800</pubDate><description><![CDATA[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 .]]></description><category></category></item><item><title><![CDATA[c指针练习：字符串逆序]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/115316544</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/115316544</guid><author>hello_java_Android</author><pubDate>Tue, 30 Mar 2021 08:32:35 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;math.h&gt;
#include&lt;time.h&gt;

void str_reverse(char *str)
{
	char* start = str;
	char* end = str + strlen(str) - 1;
	while (start &l.]]></description><category></category></item><item><title><![CDATA[Android系统启动过程脑图]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/114700370</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/114700370</guid><author>hello_java_Android</author><pubDate>Fri, 12 Mar 2021 16:51:37 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Android源代码模块引用三方so方法]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/110814084</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/110814084</guid><author>hello_java_Android</author><pubDate>Mon, 07 Dec 2020 13:09:09 +0800</pubDate><description><![CDATA[这里以google的tensorflow库为例，在系统设置模块mk文件中引入，具体方式为：

1、声明编译so库


include $(CLEAR_VARS)
LOCAL_MODULE := libtensorflowlite_jni
LOCAL_SRC_FILES := libs/libtensorflowlite_jni.so
include $(PREBUILT_SHARED_LIBRARY)

2、修改public.libraries.txt

adb pull /system/etc/publi]]></description><category></category></item><item><title><![CDATA[Android编译mk文件引入三方jar、aar、so]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/110678604</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/110678604</guid><author>hello_java_Android</author><pubDate>Sat, 05 Dec 2020 11:29:29 +0800</pubDate><description><![CDATA[引入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..]]></description><category></category></item><item><title><![CDATA[Android mk文件指定aapt參數不压缩指定资源]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/110236406</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/110236406</guid><author>hello_java_Android</author><pubDate>Fri, 27 Nov 2020 16:41:30 +0800</pubDate><description><![CDATA[例：指定不压缩tflite后缀文件。
LOCAL_AAPT_FLAGS += -0 "tflite"
]]></description><category></category></item><item><title><![CDATA[ubuntu 切换python小脚本（py2.7&py3.8）]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/109393256</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/109393256</guid><author>hello_java_Android</author><pubDate>Fri, 30 Oct 2020 21:22:12 +0800</pubDate><description><![CDATA[更新cscope没事干，把小脚本记录下：

sw_py.sh:

#!/bin/bash

read -p "The version you want(2、3): " num

echo "Changing to java ---------&gt;" $num
#sl
if [[ $num -eq 2 ]];then
 echo "pwd"| sudo -S unlink /usr/bin/python
 echo "pwd"| sudo -S ln -s /usr/bin/python2.7 ...]]></description><category></category></item><item><title><![CDATA[死循环for和while的区别]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/108764017</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/108764017</guid><author>hello_java_Android</author><pubDate>Wed, 23 Sep 2020 23:18:48 +0800</pubDate><description><![CDATA[最近在看EventHub源代码，getEvents方法中设置了一个无限for(;;)循环来进行dev设备以及事件的轮询，但是为什么不用while(1)呢？于是想到应该是有某种区别，应该从汇编指令方面来看下，如下：

小栗子：



同样是无限循环，for和while所执行的汇编指令差的还是挺多的，所以这里使用for（；；）就不足为怪了

 c文件获取到汇编代码指令：gcc -S test.c

您觉得是不是这方面的区别呢？欢迎各路大神围观留言，北京骑行爱好者可以加好友，周末组队骑行！
...]]></description><category></category></item><item><title><![CDATA[Linux内核配置编译]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/108638174</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/108638174</guid><author>hello_java_Android</author><pubDate>Thu, 17 Sep 2020 10:57:30 +0800</pubDate><description><![CDATA[环境：centos6.10

kernel代码：2.6.30

Linux内核可定制具体步骤如下：

1、清除临时文件、中间文件和配置文件
make clean:删除生成文件，但是保留配置
make mrproper：删除生成文件包括配置文件
make distclean：删除编辑器备份和patch文件
2、确定目标系统的软硬件配置情况：cpu、网卡、网络协议等。
3、内核配置方式
make config：命令行配置方式
make menuconfig：菜单配置方式
make oldconfig:在之...]]></description><category></category></item><item><title><![CDATA[Google原生输入法LatinIME词库扩容（Windows10环境）]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/107156116</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/107156116</guid><author>hello_java_Android</author><pubDate>Mon, 06 Jul 2020 13:54:40 +0800</pubDate><description><![CDATA[去年在Linux（ubuntu）环境下针对LatinIME进行词库扩容处理，针对LatinIME的词库构建进行了一些列分析，大家可以查阅历史文章。词库扩容最近试了一下是可以的，具体流程大致如下（windows10环境）：

1、安装MinGw以及gcc、g++、gdb等，下载地址：e795， 安装完成配置环境变量到path（..\mingw\bin）

2、进入到..\cpp\command目录进行make



windows下没有make命令的，需要到MinGw\bin目录下重命名mingw32-mak]]></description><category></category></item><item><title><![CDATA[GBD调试谷歌拼音输入法准备工作]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/106944179</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/106944179</guid><author>hello_java_Android</author><pubDate>Wed, 24 Jun 2020 15:11:45 +0800</pubDate><description><![CDATA[先要编译出来一个可执行文件，具体步骤：

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 directory
compilat.]]></description><category></category></item><item><title><![CDATA[ubuntu16.04 compile android L error]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/90668973</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/90668973</guid><author>hello_java_Android</author><pubDate>Wed, 29 May 2019 12:53:23 +0800</pubDate><description><![CDATA[1. install

sudo 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...]]></description><category></category></item><item><title><![CDATA[ubuntu 18.04 编译Android坑s]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/90632994</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/90632994</guid><author>hello_java_Android</author><pubDate>Tue, 28 May 2019 09:34:00 +0800</pubDate><description><![CDATA[去除所有本地化的设置
error:flex-2.5.39: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt &lt; (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed. Aborted (core dumped)

或者

F...]]></description><category></category></item><item><title><![CDATA[Unix系统编程文件I/O基础知识]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/90487690</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/90487690</guid><author>hello_java_Android</author><pubDate>Thu, 23 May 2019 21:09:50 +0800</pubDate><description><![CDATA[文件描述符

对于内核而言，所有打开的文件都通过文件描述符引用，文件描述符是一个非负整数，当打开一个现有文件或者创建一个新文件时，内核向进程返回一个文件描述符，当读、写一个文件时，使用open或create返回的文件描述符标识该文件，将其传递给read或write。

按照惯例，UNIX系统shell把文件描述符0与进程的标准输入关联，文件描述符1与标准输出关联，文件描述符2与标准错误关联。在符合...]]></description><category></category></item><item><title><![CDATA[转载Ubuntu18.04卡死问题解决，]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/90399939</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/90399939</guid><author>hello_java_Android</author><pubDate>Tue, 21 May 2019 09:11:38 +0800</pubDate><description><![CDATA[笔记本是带有NVIDIA独立显卡的，安装Ubuntu18.04时候没有联网，安装完成发现没有NVIDIA显卡驱动，我是先在网上找了个博客，按照博客先安装好了NVIDIA显卡驱动（自己电脑型号的驱动），但是发现还是卡死，然后参考了这篇文章得以解决：

转载文章

安装NVIDIA驱动

配有 Nvidia 显卡的笔记本安装 ubuntu18.04 所遇到的问题与解决
问题一：系统安装时卡死。

系统...]]></description><category></category></item><item><title><![CDATA[Android  只获取特定包名log]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/90109704</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/90109704</guid><author>hello_java_Android</author><pubDate>Sat, 11 May 2019 15:00:00 +0800</pubDate><description><![CDATA[此命令用于在Ubuntu命令行中获取指定包名（应用）的所有log信息：


adb logcat --pid=$(adb shell pidof -s pkg_name)

把pkg_name换成需要过滤的应用包名即可，特此记录。

StackOverFlow
...]]></description><category></category></item><item><title><![CDATA[虚存技术（上）]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/89971664</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/89971664</guid><author>hello_java_Android</author><pubDate>Wed, 08 May 2019 20:24:16 +0800</pubDate><description><![CDATA[虚拟内存的出现是为了缓解内存不足的问题，

覆盖技术：

目标：是为了在较小的内存中运行较大的程序，常用于多道程序系统，与分区存储管理配合使用。



原理：把程序按照其自身逻辑结构，划分为若干个功能上相对独立的程序模块，那些不会同时执行的模块共享同一块内存区域，按照时间先后来运行。

1、必要部分（常用功能）的代码和数据常驻内存。

2、可选部分（不常用功能）在其他程序模块装载到内存。

...]]></description><category></category></item><item><title><![CDATA[LKD-Linux系统进程管理]]></title><link>https://blog.youkuaiyun.com/hello_java_Android/article/details/89226328</link><guid>https://blog.youkuaiyun.com/hello_java_Android/article/details/89226328</guid><author>hello_java_Android</author><pubDate>Fri, 12 Apr 2019 15:13:56 +0800</pubDate><description><![CDATA[本章介绍linux系统进程概念以及线程，讨论在linux内核中是如何对进程进行管理的以及进程结束流程。

 关于进程的概念在操作系统概念--操作系统中的进程、线程中已经描述过，这里不在赘述，在应用层一般理解是一个应用实例是一个进程，一个进程又可以包含多个线程，但是在传统的unix系统中每个进程都是由一个线程组成的，而Linux系统内核中也有单独的对线程的实现机制：即不区分线程和进程。

...]]></description><category></category></item></channel></rss>