<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lkl3346的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lkl3346</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lkl3346]]></copyright><item><title><![CDATA[Ubuntu22.04 离线安装：gcc、make、dkms、build-essential]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/144988639</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/144988639</guid><author>lkl3346</author><pubDate>Tue, 07 Jan 2025 16:41:54 +0800</pubDate><description><![CDATA[离线安装基本依赖参考：Ubuntu离线安装gcc，make等。]]></description><category></category></item><item><title><![CDATA[python将pyc文件反编译成py源文件--工具下载及使用总结]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/130543299</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/130543299</guid><author>lkl3346</author><pubDate>Sun, 07 May 2023 15:28:10 +0800</pubDate><description><![CDATA[python 将pyc 文件反编译成py源文件1.下载反编译工具Easy Python Decompiler或者2.反编译pyc文件2.1   可以将pyc反编译成pyc_dis文件2.2   可以将指定目录下所有的pyc文件，反编译成pyc_dis文件3.将下列代码保存为bat文件，放到使用Easy Python Decompiler转换成功后的文件夹下，双击运行，即可自动删除当前目录及子目录下的pyc源文件，并将反编译的pyc_dis类型文件转换成python源文件。]]></description><category></category></item><item><title><![CDATA[UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xff in position]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/121033465</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/121033465</guid><author>lkl3346</author><pubDate>Fri, 29 Oct 2021 14:06:49 +0800</pubDate><description><![CDATA[在使用python解释MTK的log时候，提示“codec can't decode byte 0xff in position 5145: illegal multibyte sequence”



主要是因为MTK输出的log中，有部分字符采用1-2个字节，导致使用utf-8或者gbk编码方式都无法解释。只需要将编码方式改成encoding="ISO-8859-1"即可

Traceback (most recent call last):
 File "extract-power-consumpt.]]></description><category></category></item><item><title><![CDATA[bug类型收集]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/118352386</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/118352386</guid><author>lkl3346</author><pubDate>Wed, 30 Jun 2021 05:07:00 +0800</pubDate><description><![CDATA[Bug主要类型：
1.输出与预期不符
2.程序报错
3.程序明显响应慢
4.程序crash

]]></description><category></category></item><item><title><![CDATA[修复 bug 常规的处理流程]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/118352198</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/118352198</guid><author>lkl3346</author><pubDate>Wed, 30 Jun 2021 04:54:14 +0800</pubDate><description><![CDATA[修复 bug 常规的处理流程:
1.确定 bug 相关的环境信息。
2.梳理 bug 所在的整条业务链路。
3.分析 bug 在链路中的哪个环节产生。
4.调整代码，修复问题。

]]></description><category></category></item><item><title><![CDATA[如何说别人能听懂的话？]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/118351870</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/118351870</guid><author>lkl3346</author><pubDate>Wed, 30 Jun 2021 04:33:23 +0800</pubDate><description><![CDATA[如何说别人能听懂的话？
说别人能听懂的话，要了解别人擅长的领域，倾听别人的需求，提升自我的表达能力。
首先了解对方擅长的领域，熟悉别人圈子里的话。我转行做了研发经理的时候，发现和产品经理的对话更多了，在团队过渡期的时候，产品经理可能都不到位，比如说离职了，这时候自己也得学会扮演产品经理的角色。作为研发经理，你对产品经理知多少？我找到一种了解别人的框架，总结下来就是：在达成同一目标的时候，你们各自的专注点是什么？你们各自的贡献是什么？搞明白别人的贡献，你就找到了别人擅长的领域。产品经理擅长的领域是解释为什么我]]></description><category></category></item><item><title><![CDATA[CPU负载]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/115427502</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/115427502</guid><author>lkl3346</author><pubDate>Sun, 04 Apr 2021 12:44:54 +0800</pubDate><description><![CDATA[CPU利用率和负载
图片
我们上一篇文章介绍了系统的负载，本文介绍了CPU利用率，很多小伙伴就会分不清楚了，这两者之前到底有什么区别和联系呢？
CPU利用率是对一个时间段内CPU使用状况的统计，通过这个指标可以看出在某一个时间段内CPU被占用的情况。
CPU负载是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息，也就是CPU使用队列的长度的统计信息。
有一个很好的比喻，就是把CPU的使用比喻成排队打电话：
我们将CPU就类比为电话亭，每一个进程都是一个需要打电话的人。现在有一个电话亭（单核]]></description><category></category></item><item><title><![CDATA[android 调用堆栈看函数调用]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/109822026</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/109822026</guid><author>lkl3346</author><pubDate>Thu, 19 Nov 2020 19:14:12 +0800</pubDate><description><![CDATA[android 调用堆栈看函数调用　android::CallStack stack;

１、添加头文件

#include &lt;utils/CallStack.h&gt;

２、在需要打印输出堆栈信息的地方添加下面的语句

ALOGD("dump callstack");

android::CallStack stack;

stack.update( );

stack.log("CALLSTACK"); //callstack LOG_TAG



３、用adb logcat | grep C.]]></description><category></category></item><item><title><![CDATA[超级终端的常用 快捷键]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/48051549</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/48051549</guid><author>lkl3346</author><pubDate>Fri, 28 Aug 2015 14:14:17 +0800</pubDate><description><![CDATA[在打开 的超级终端中 ，另新建一个终端  ctrl+shife+N   此时屏幕会出现两个终端
                                      另新建一个标签  ctrl+shife+T    此时只有一个终端，但是这个终端中，会出现两个标签 ，可以通过   alt +1 / 2  / 3在多个标签中进行切换]]></description><category></category></item><item><title><![CDATA[com.android.camera.Camera.java，主要的实现Activity，继承于ActivityBase]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/46458755</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/46458755</guid><author>lkl3346</author><pubDate>Thu, 11 Jun 2015 16:03:56 +0800</pubDate><description><![CDATA[com.android.camera.Camera.java，主要的实现Activity，继承于ActivityBase。
 
ActivityBase                                                                          
 
在ActivityBase中执行流程：
 
onCreate中进行判断是否是平板；]]></description><category></category></item><item><title><![CDATA[com.android.camera.Camera.java，主要的实现Activity，继承于ActivityBase]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/46458737</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/46458737</guid><author>lkl3346</author><pubDate>Thu, 11 Jun 2015 16:02:50 +0800</pubDate><description><![CDATA[com.android.camera.Camera.java，主要的实现Activity，继承于ActivityBase。
 
ActivityBase                                                                          
 
在ActivityBase中执行流程：
 
onCreate中进行判断是否是平板；]]></description><category></category></item><item><title><![CDATA[i2c设备与驱动匹配过程]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/44872725</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/44872725</guid><author>lkl3346</author><pubDate>Sat, 04 Apr 2015 13:51:11 +0800</pubDate><description><![CDATA[1. 几个基本概念

1.1. 设备模型

由 总线（bus_type） + 设备（device） + 驱动（device_driver） 组成，在该模型下，所有的设备通过总线连接起来，即使有些设备没有连接到一根物理总线上，linux为其设置了一个内部的、虚拟的platform总线，用以维持总线、驱动、设备的关系。

因此，对于实现一个linux下的设备驱动，可以划分为两大步：

]]></description><category></category></item><item><title><![CDATA[OV5848 Camera AF无功能的问题]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/44706355</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/44706355</guid><author>lkl3346</author><pubDate>Sat, 28 Mar 2015 21:24:20 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/aceheart/p/3801631.html


平台：展讯7730

模块：camera

IC:    OV5648

问题：AF无功能

 

现象：客户新打样OV5648的camera, 发现AF无功能，更换IC之前AF功能正常，更换为OV5648之后AF无功能。

分析过程：

前提：在模组的pin定义中，]]></description><category></category></item><item><title><![CDATA[Camera兼容引起的打开失败问题]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/44706215</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/44706215</guid><author>lkl3346</author><pubDate>Sat, 28 Mar 2015 21:19:02 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/aceheart/p/3746761.html





平台：展讯SC7730

Camera IC:前GC0329后GC0328

近日，在解决项目BUG的过程中，测试部门有报：下载完版本第一次开机后，第一次和第二次进Camera会出现打开失败的BUG，第三次就可以正常打开了。

 

解决思路：

1、首先是硬件主]]></description><category></category></item><item><title><![CDATA[MTK6577---camera驱动分析]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/44057979</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/44057979</guid><author>lkl3346</author><pubDate>Wed, 04 Mar 2015 11:32:03 +0800</pubDate><description><![CDATA[MTK6577---camera驱动分析 2013-11-21
 15:34:31



分类： Android平台



一.camera驱动的初始化
1. 支持的摄像头列表
在./mediatek/config/mobitek77_m01_ics2/ProjectConfig.mk中,
配置支持的摄像头驱动



CUSTOM_HAL_IMGSENSOR=ov5]]></description><category></category></item><item><title><![CDATA[Android 直接打开log的一种方法]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/42716469</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/42716469</guid><author>lkl3346</author><pubDate>Wed, 14 Jan 2015 21:11:49 +0800</pubDate><description><![CDATA[原 [Android]Android
 直接打开log的一种方法



http://my.oschina.net/u/996206/blog/200789





针对Apk log内部控制方式是通过Log.isLoggable来控制的情况

Example: adb shell setprop log.tag.Finsky VERBOSE

一般code是这样写]]></description><category></category></item><item><title><![CDATA[理解 Android Build 系统]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/42527811</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/42527811</guid><author>lkl3346</author><pubDate>Thu, 08 Jan 2015 17:59:14 +0800</pubDate><description><![CDATA[理解 Android Build 系统




Android Build 系统是用来编译 Android 系统，Android SDK 以及相关文档的一套框架。众所周知，Android 是一个开源的操作系统。Android 的源码中包含了许许多多的模块。 不同产商的不同设备对于 Android 系统的定制都是不一样的。如何将这些模块统一管理起来，如何能够在不同的操作系统上进行编译，如何]]></description><category></category></item><item><title><![CDATA[Linux内核调拭之printk用法]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/42489529</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/42489529</guid><author>lkl3346</author><pubDate>Wed, 07 Jan 2015 11:19:14 +0800</pubDate><description><![CDATA[内核通过 printk() 输出相关信息，在调用 printk() 函数时必须要指定日志级别。

printk()用法：
printk( "Hello, world!\n");          /* 直接用数字指定日志级别，用尖括号括起来 */
printk(KERN_ALERT "Hello, world!\n");   /* 也可以这么用 */

接下来，我们来看 kernel/p]]></description><category></category></item><item><title><![CDATA[Zynq设备树教程（四）]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/42418803</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/42418803</guid><author>lkl3346</author><pubDate>Mon, 05 Jan 2015 10:15:35 +0800</pubDate><description><![CDATA[Zynq设备树教程（四）




由 FPGA菜鸟 于
 星期三, 10/15/2014 - 16:01 发表

http://xilinx.eetrend.com/blog/7777



获取资源信息

内核模块驱动加载之后，就开始把硬件资源管理起来，如读写寄存器、接收中断。

来看看设备树里的一条：
xillybus_0: xillybus@50000000]]></description><category></category></item><item><title><![CDATA[putty等终端在关闭窗口后，未关机的主机会继续运行命令--即后台运行   nohup]]></title><link>https://blog.youkuaiyun.com/lkl3346/article/details/42268805</link><guid>https://blog.youkuaiyun.com/lkl3346/article/details/42268805</guid><author>lkl3346</author><pubDate>Tue, 30 Dec 2014 17:17:53 +0800</pubDate><description><![CDATA[离线后台下载


nohup command &






例如：
nohup make -j32 &


又如： 离线下载服务器上的代码
nohup repo sync  -j32 &  


屏幕上会显示下面提示信息：
liaokuanlong@cte-intel:~/sofia3g_mrd-stable$ nohup: 忽略输入并把输出追加到"nohu]]></description><category></category></item></channel></rss>