自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

green的专栏

没有最好,只有更好!

  • 博客(82)
  • 资源 (6)
  • 收藏
  • 关注

原创 构建模块

Helloworld  Makefile DRI_NAME :=helloworldobj-m :=$(DRI_NAME).oKERNELDIR ?=/opt/source/os/linux-2.6.24PWD ?=$(shell pwd)default:    $(MAKE) -C ${KERNELDIR} M=${PWD} modulesclean:    @rm -rf *.o *.ko ....

2018-05-08 11:09:27 880

原创 iptables初探

因为某些原因,为了让自己的机器可以上网必须通过同事的一个IP 192.168.1.34本机IP为192.168.1.54还有一台机器IP为192.168.1.44同事192.168.1.34增加了一条路由表iptables -t nat -A POSTROUTING -s 192.168.1.54 -o eth0 -j SNAT --to 192.168.1.34我的192.168.1.54 既可...

2018-05-08 11:08:49 1359

原创 nfs 启动linux

     最近在研究gcc 本身-pg + gprof的热点分析支持,可析我们开发板的uclibc不支持此选项,于是产生更换uclibc为glibc的想法,由于以前自己未曾构建过根文件系统,为了避免一次一次的写FLASH,决定使用nfs rootfs启动.     首先内核加入选项Root file system on nfs      编译内核使用命令mkimage -A arm -T kern...

2018-05-08 11:08:04 1737

原创 分辨率等比例缩放

         前几天给同事查了一个BUG,最后发现BUG是因为16/9分辨率的视频缩放到非16/9分辨率的屏幕上黑边引起的问题,然而,关于一个1280*720缩放到1024*768分辨率的屏幕上应该留多少像素的黑边却一时不知道如果计算了,后来咨询同事算法如下        以1024为基准计算出1024如果是16/9为基准的得到的宽度为1024*9/16=576 那么1024*768应该留的黑...

2018-05-08 11:07:43 8700

原创 linux LD_PRELOAD

前些天为了排查我们程序中不知道是库里面还是我们自己调用了assert断言,导致我们程序死亡。想通过hook拦截到调用这个函数的调用者,偶然间想起proload(预加载),小试牛刀使用如下代码#include <syscall.h>#include <stdio.h>#include <sys/types.h>#include <unistd.h>vo...

2018-05-08 11:06:58 5887 1

转载 ARM GNU 工具链在使用gprof中的一个bug

最近发现了ARM GNU 工具链在使用gprof中时存在一个bug,描述如下:版本为:gcc-3.2.1+glibc-2.3.1+binutils-2.13.2。这个bug存在于glibc-2.3.1至目前的最新版本(2.3.5)。搭建的工具链为ARM版本。 现象:gcc -pg(或gcc -pg -O2)选项编译的动态程序运行不生成gmon.out文件。静态程序不存在问题。 解决:下面两点都要注...

2018-05-08 11:06:22 1967

原创 linux启动程序缓慢

公司的机器E5800 2G内存,debian 5.0,用了一年了,但是最近发现启动程序异常缓慢,慢道有点接受不了了启动一个vim要1分钟左右使用strace vim输出如下信息zhangzhao-debian:~# strace vimexecve("/usr/bin/vim", ["vim"], [/* 34 vars */]) = 0brk(0)                        ...

2018-05-08 10:42:34 5188

原创 printf输出死机

   今天老大给安排了个任务,查死机BUG   这正是我喜欢的事情,于是二话不说投入200%的精力,开始查。话说此BUG 必先,一般来讲,毕现不是BUG,可是这个BUG却把我折腾的够呛,查了两个小时从有根据变成了没根据此BUG崩溃时我们dump出了他当时的寄存器值和堆栈的内容,提一下我们的运行环境arm1176,编译器为gcc 3.4.1。   通过分析寄存器的值   regs.ARM_pc = ...

2018-05-08 10:41:51 6131

原创 VirtualBox 磁盘扩容

      平时工作在linux主机上,公司的一些软件无法使用,无奈使用虚拟机虚拟windows,喜欢web版的软件,跨平台方便呀。      以前使用过vmware,在windows是上跑的当当的,linux版本虚拟机开机关机,内核模块总是内存泄露。导致机器占用内存越来越多,无法接受,况且vmware还得找序列号,偶然间发现Sun VirtualBox (现在是Oracle的了),非常好用,速度...

2018-05-08 10:40:52 2851 1

原创 android学习之路-1-初步环境建立

移动互联网浪潮不可阻挡,安防破监控设备依然是那么的图,北漂一族不能被时代抛弃,准备学习android or ios ,我认为android 有几大优势1.N多大公司支持2.开放性极强,程序员的思维有时候解决问题可以跟踪代码从上到下(app->jni->c++ framework->linux kernel->driver->hardware)当然,我的水平仅限于APP...

2018-05-08 10:40:03 1335

原创 android 显示系统1(本系列使用的源代码和一些资源)

AOSP源代码下载之所以使用下面的版本,是因为它可以运行在google最新的pixel手机上(Pixel 2 XL、Pixel 2、Pixel XL、Pixel ),并且代码的新旧程度也很合适,目前最新的tag是android-8.1.0_r18repo init -u https://android.googlesource.com/platform/manifest -b and...

2018-05-03 15:35:45 208

原创 openjdk 初试(build)

下载我使用的环境是 ubuntu 16.04 基本上属于ubuntu 的最新版本所以建议下载openjdk的最新开发分支的代码 否则会有个中问题的 下载链接 http://openjdk.java.net/projects/jdk8u/ openjdk使用了hg作为版本控制的工具hg clone http://hg.openjdk.java.net/jdk8u/jdk8ucd jdk8u

2017-12-29 18:39:40 1428

原创 android bionic linker debug enable

Linker—android里面的加载器ld这类的基础库要想调试基本上gdb是派不上用场的,最好用的还是printf,这里的printf是个泛指 android 的调试基本上都是通过logcat 输出的,当然你也可以自己打开一个文件写,不过那样子会带来各种权限问题,阻止的让你崩溃!Linker 的debug 主要靠printf 分为三个档#define PRINT(x...)

2017-08-04 18:58:42 1055

原创 Docker

ubuntu 编译aosp必备 不过大家也知道ubuntu 桌面一直稳定性比较弱 之前一直使用debian 稳定性还是很高的,基本上可以一年开两次机器,一次开半年!随着android 版本的不断增多,一个单一的ubuntu 14.04也不足一满足所有的android 版本编译 你仍然需要在openjdk 7\openjdk 8\jdk 6\jdk 7几个版本不断切换,带来了很多的不确定性 直

2017-07-21 18:08:12 216

原创 gdb 系列(2) (build&debug gdb)

为什么要debug上文我们提到的,1.很多时候你对一些ptrace系统调用为什么错误很感兴趣,这里面首要的问题就是在错误的时候错误码是什么?当然你可以在kernel里面打印,不过不经济,如果你不是深入调查这个错误的原因2.如果我自己实现一个类似gdb的东西那么我应该怎么传递ptrace参数,比如attach一个pid3.我想查看一些gdb工作原理,比如breakpoint是怎么工作的这些都

2017-02-20 18:14:27 424

原创 gdb 系列(1) (hwbreakpoint\watchpoint)

1. 软硬件环境android 7.0(n) QCOM 骁龙8202. 背景我最初是因为要做一件类似这样的事情的时候才研究这个的 art debug过程中我们发现 经常有SIGSEGV的问题,而且是死在java 代码里(art 已经使用dexoat把java code compile 成了机器码) 几经分析发现是在对象的method里执行的时候this指针被改了,导致了取对象的一些成员的时候出

2017-02-18 20:43:34 7376 3

原创 android memory

查看内存工具有 dumpsys meminfo procrank procmem ps topVSS ( 等同于 ps 命令列出的 VSZ) 是单个进程全部可访问的地址空间。 其大小包括可能还尚未在内存中驻留的部分。比如地址空间已经被 malloc 分配,但是还没有实际写入。 对于确定单个进程实际内存使用大小, VSS 用处不大。RSS 是单个进程实际占用的内存大小。 RSS 易被

2017-01-25 18:25:24 258

原创 基础(可执行文件elf)

因为oat本身就是一个elf文件,所以进行一些2进制问题分析的时候还是需要一些基础知识字节序 // 小端口诀: 高高低低 -> 高字节在高地址, 低字节在低地址 // 大端口诀: 高低低高 -> 高字节在低地址, 低字节在高地址 // 1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 // 2.大端法(Big-Endi

2017-01-24 10:44:59 356

原创 linux 虚拟内存地址转化成物理内存地址

背景 现代手机这种SOC(system on chip),因为功耗、Modem等功能soc上集成了很多core,他们还可以是独立的系统在运转。  比如ADSP简介ADSP(Application Digital Signal Processing)就是高通的Hexagon DSP ,就是独立运转的一个core+system。这样做不仅可以使用soc上的专用核处理专业的事情,比如上面说的ADSP就可

2017-01-23 16:04:15 1244

原创 JVM基本概念

编译相关 英文缩写 英文全称 中文 AOT Ahead Of Time 静态编译器 JIT Just In Time 动态编译器 PGO Profile-Guided Optimization 通俗的说就是基于动态信息的激进优化Java调试相关IBM Developerworks 介绍调试相关的好文章 英文缩写 英文全称 中文 JDWA

2017-01-10 19:26:42 349

原创 2017新年,开篇

2017新年,开篇新年,新开始Android 摸爬滚打已经(2014.05 — 2017.1)有小三年,回顾过去,搞过手机Multimedia,Frameworks问题排查,和15年风口上的VR(Virtual Reality),效力的东家还是除了暴风之外一个视频巨头(可以联想很多很多)。只是什么都略懂一些,没有拳头,用小说里武林人士说法就是各种杂牌武功练了一遍,还是武林中的一名小卒子,需要找个深山

2017-01-10 18:47:20 289

原创 windows 7 修改samba共享时保存的用户名和密码

2015-08-28离开了老东家 2015-08-31入职新东家2015继续加油 ubuntu 环境配置好,windows 7 虚拟机搞起来,virtualbox 一直有点问题就是文件共享不好用于是使用了另一套方案samba配置ubuntu 14.04 samba使用了如下方案http://jingyan.baidu.com/article/00a07f38b9194082d0

2015-09-10 10:08:26 15609 1

原创 android java unicode 之间的关系

背景 使用正则表达式寻找emoji字符,进行过滤 1.通过 http://apps.timwhitlock.info/emoji/tables/unicode 确定emoji 的字符码点范围在 \u1F600-\u1F6FF 之间 需要查看unicode码点和UTF-8 UTF-16 UTF-32的童鞋可以参考这篇文章 http://www.ruanyifeng.com/blog/20

2015-02-26 17:07:23 3778

原创 apache config 1 Bandwidth Mod (apache speed control)

调试网络的时候进行  HTTP模拟网速 快慢  使用apache 插件 Bandwidth Mod 1.安装mod_bw下载http://bwmod.sourceforge.net/#解压进入目录执行sudo apxs2 -i -a -c mod_bw.c2.配置在配置文件/etc/apache2/httpd.conf 加入如下  配置为低速模式 1KB/SS

2014-09-30 19:27:51 1173

原创 eclipse config 5 括号匹配插件

这个插件将可以使你的eclipse 具备sourceinsight的另一项大招当函数体过长时,嵌套层次过多时,在大括号结尾显示这个大括号对应的开始字符方便查看层次问题,当然所有的编码规范不推荐嵌套层次过多。如下图虚线部分即是同时该插件还可以支持多层级括号匹配时 不同的层级使用不同的亮度来进行显示,清晰明了还支持鼠标划过时括号匹配动态更新,我一般关闭这个选项,个人癖好

2014-09-03 19:29:47 2816

原创 git submodule

使用这个的前提:1.工程依赖不太大,比较简单,5个以内吧(比较大了还是用android 的 repo吧)2.注意submodule的提交需要在它的目录下执行3.注意 git submodule update4.循环执行可以使用git submodule foreach git submodule update主要应用与 使用了别人的库,不需要自己维护总之就是

2014-08-26 20:54:44 3526

原创 eclipse config 4 关闭eclipse警告

毫不夸张的说每个程序员都是一个完美主义者添加一个c/c++代码,满脸的都是条纹各种标注无法容忍像下图所示好,我们来个暴力的,关闭它点击Window->Preferences打开如下选项关闭所有的代码分析是不是舒服多了

2014-07-09 16:03:34 2118

原创 eclipse config 3 配置pydev

啥也不说了人生苦短,我用python准备工作sudo apt-get install python3-dev如下操作依次点击菜单Help->Install New Software... 点击add添加如下插件地址http://pydev.org/updates然后列出了两个插件 下面的PyDev Mylyn Integrat

2014-07-09 14:32:00 1552

原创 eclipse config 2 tab -> space

编码规范要求不允许使用tab,但是又要有4个字符的缩进,连点4次space,这不是程序员的风格来看看 eclipse 设置一次tab像space的转换如下操作Window->Preferences   基于K&R clone一个新的代码风格更改缩进风格   缩进大小为4,即4个字符,OK完成了

2014-07-09 13:42:24 891

原创 eclipse config 1 配置主题

程序员盯着屏幕时间长了难免会想看个自己舒服的颜色,尤其是一天下来一直盯着的编辑器OK 依次点击菜单Help->Install New Software... 点击add添加如下插件地址http://eclipse-color-theme.github.com/update如下图所示之后就一步一步的操作然后如下操作Window->Preferences

2014-07-09 11:10:48 980

原创 android 开发中用到的工具-持续更新(码农必看)

1. vim 单文件查看修改利器(一直使用支持各种编码各种文件,各种插件),欢迎下载笔者插件git clone https://github.com/green130181/vim-conf.gitdevelopment 是开发目录,要使用的话直接进入该目录执行make install 即可doc是个继续latex 的  文档,介绍一些插件如何使用的文档2.Geany 不错的文件查

2014-07-02 16:43:13 1466

原创 android anr

"Application Not Responding" (ANR)

2014-06-27 20:19:44 615

原创 android 如何单独下载一个项目

起因,“网络”不太好,“比如铁通的就是不如联通的”每次执行一边repo sync,十分蛋疼,如果不做full build无需全部下载,着急看某个项目的改动可是repo sync会一个不拉的把所有的AOSP项目拉一遍。。。。。。。废话少说,单刀直入执行方式git clone https://android.googlesource.com/platform/framewo

2014-06-27 08:34:16 1590

原创 android-vlc for rtsp build OK

android-vlc for rtsp build OK

2014-06-16 11:14:01 1811

原创 android学习之路-4-gdb for android

以前调试使用gdb 查看调用栈和变量等问题包括

2014-06-12 21:15:23 804

原创 实用的eclipse adt 快捷键

Ctrl + Shift + T: 打开类型:显示"打开类型"对话框来在编辑器中打开类型。"打开类型"选择对话框显示工作空间中存在的所有类型如类、接口等。 Ctrl + Shift + R: 打开资源:打开"打开资源"对话框以打开工作空间中的任何资源。在Package Explorer中不必浏览文件便可快速打开任意一个文件。使用这个快捷键可以打开一个对话框,在里面输入你想查找的文件或者

2014-05-29 15:44:04 8404 1

原创 ubuntu unity 左侧长条添加新启动

gnome terminal 我的最爱,以前用debian各种舒服最近搞android 切换到ubuntu 12.04 不得以

2014-05-28 16:15:58 1145

原创 android学习之路-3-run

上面环境建立已经完成,我们该进行环境

2014-05-27 18:01:21 644

原创 linux下QQ如何使用

linux 下QQ有如下几种 方式登陆1.

2014-05-26 20:06:53 1252

原创 android学习之路-2-package build环境建立

写本文章时,笔者已经成功的进入了安卓开发者(framework/av)的行列。感谢大家在论坛中对笔者的鼓励,后面会陆续给大家分享自己工作中的心得,大家共同学习共同进步。开发环境:ubuntu 12.04 LTS 64bit硬件: 有史以来,配置最强的硬件1.下载构建 android-source ubuntu 依赖包sudo apt-get install git gn

2014-05-26 14:40:37 1139

VLC-debug.apk arm android

自己编译的vlc-android 源码,由于我自己也资源分匮乏,大家原谅我收1分。谢谢了,什么时候csdn能开源不再收取资源分就好了,free。

2014-06-16

debian lenny install

debian 5.0(lenny)的安装教程,很实用

2011-01-07

Linux内核情景分析.pdf

一本非常好的学习linux内核的书,值得学习学习,可以对系统有个更好地认识

2010-05-09

vc++ 6.0学习

一个介绍VC++ 6.0的幻灯片,很经典

2007-11-11

C++的风格与技巧.pdf

c++编程规范,技巧

2007-08-20

空空如也

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

TA关注的人

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