推荐文章 New Blog
Android 开发遇到的破事(三)
这两天公司来了个妹子,我刚好去她旁边有点事,突然被叫住说她的adb不能用了。我试了一下,果然adb shell和adb push等等都不能用了,现象就是卡死不动。这个问题我碰到过,将adb的进程干掉,直接输入>adb kill-server >adb start-server发现还是不行,一回车就不动了。看来是端口被占了。。。好看看到底是什么占了俺adb的端口(默认5037)>netstat /a /o|findstr 5037果然发现了一个,根据pid在任务管理器里面一找发现一个logs and alert的服务占了,这个服务干嘛的呀,为啥和adb抢端口用,直接到服务里面吧这个服务禁用掉,啊哈果然adb 正常了,搞定,妹子感谢了一番,俺自信的走了。一会espace发来一个消息,妹子说又不能用了。。。我一看还是原来的问题...June 30, 2016, 8:06 a.m.作者:zachary分类:Android阅读(2135)评论(0)
Android开发遇到的破事(二)
这篇要说的是Android system property,具体的原理这里就不说了,http://www.cnblogs.com/bastard/archive/2012/10/11/2720314.html 这篇文章以及相当的详细了。这里只说说具体的作用,还有碰到的坑。我们都知道,系统有很多的属性,这些属性很多通过property做永久化的保存,在android系统中可以通过adb shell getprop获得系统所有的property。我们可以使用这个作为特性的开关。昨天碰到的问题是在代码中发现SystemProperties.set("zachary")无效,但是SystemProperties.get("zachary")却可以获取从adb shell设置的值,奇怪了,我是在systemserver进程中操作的,应该不是权限的问题吧。从an...May 12, 2016, 8:26 a.m.作者:zachary分类:Android阅读(2155)评论(0)
KILL命令流程全解
这篇文章在我的博客中是在另一篇的基础上完成的,http://www.sbfeng.cn/blog/detail?blogId=1454242937本文以android6.0.0源码为基础,内核版本3.10,其他代码大同小异。一、kill之冰山一角Kill是一个信号发送的程序,可发送的信号包括如下:在Android6.0中,代码位置external/toybox/toys/posix/kill.c,这个代码比较简单,最终会调用kill(procpid, signum),也即Kill程序最终通过系统调用kill发送信号。第二、kill之徐妃半面 在系统调用之后,SYSCALL_DEFINE2(kill, pid_t, pid, int, sig) 2919 { 2920 struct s...May 8, 2016, 8:59 a.m.作者:zachary分类:Linux相关阅读(2561)评论(0)
酸奶小技能
清明节无聊,突然想做米酒,就准备买米酒机,突然发现,米酒机可以做酸奶,哈哈就尝试一下,居然成功了,做出来的还挺好吃。下面把步骤共享出来:1、买1L鲜奶和一小杯酸奶,俺是去一鸣买的,喜欢喝一鸣的奶。2、把酸奶机的内胆洗干净,将鲜奶和酸奶混合倒入内胆中,放入合适的糖(不放会很酸),搅拌均匀,盖上盖放入酸奶机中3、将酸奶机功能调到酸奶,接通电源,等上10个小时就ok啦,做好的酸奶如下图:做出来的真的很好吃,哈哈...April 7, 2016, 8:49 a.m.作者:zachary分类:日记阅读(1903)评论(0)
Android6.0镜像编译烧机全过程
一、android代码下载在国内由于某墙的原因,不能直接下载google的代码,幸好清华大学有AOSP的镜像源。先搬出清华的地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/,与在android网站上下载源码一样,只是地址有点改变。1、下载 repo 工具:$mkdir ~/bin $PATH=~/bin:$PATH $curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $chmod a+x ~/bin/repo上面的地址可能下不下来,如果真不能下载,百度一个repo就好了,修改repo文件,设置REPO_URL如下: REPO_URL = ...March 17, 2016, 8:09 a.m.作者:zachary分类:Android阅读(2255)评论(0)
android反编译总结
java的反编译相对c/c++要简单一些,android程序是一个apk,实质是一个压缩包,通过简单的减压缩,就可以得到apk的资源文件,通过替换这些资源文件就可以简单的自定义程序的图标。废话不多说了,下面通过一个实例将android反编译的过程。 工欲善其事,必先利其器。反编译程序之前,首先需要一些工具。 1、apktool:反编译最重要的工具,可以将android apk反编译成smail语言,并可以将其编译回apk.下载地址 2、dex2jar:将dex文件转化为jar文件,这个工具需要与下面的工具配合使用,反编译出混淆后的源码。下载地址 3、jd-GUI...March 1, 2016, 8:15 a.m.作者:zachary分类:Android阅读(1765)评论(0)
[转]dumpsys使用
dumpsys顾名思义就是dump 系统信息的工具。1、首先可以获得dumpsys可用的service信息:shell@hwp7:/ $dumpsys |grep "DUMP OF SERVICE"DUMP OF SERVICE statusbar: DUMP OF SERVICE system.hsmcore: DUMP OF SERVICE telecom: DUMP OF SERVICE telephony.registry: DUMP OF SERVICE textservices: DUMP OF SERVICE trust...Feb. 3, 2016, 8:37 a.m.作者:zachary分类:Linux相关阅读(2143)评论(0)
linux之kill探究
好久没写东西了,抓住1月的尾巴,补上一篇,开发中常用kill命令杀死进程,具体为什么能杀死,我一直很好奇。前两天研究LMK的时候发现,在内存不够的时候使用了SIGKILL信号杀死了选定的进程,后面想着顺带探究了一下。 想要真正理解kill为什么能杀掉进程,需要理解linux上进程的工作原理,当然这里不可能说很清楚,我也没有这个能力,现在把我知道的写出来。 kill在linux中是一个程序,这个程序用于发送信号,linux中的信号很多,通过kill -l命令可以看对于信号的处理可以参看下面的文章:http://lifeofzjs.com/blog/2015/03/22/what-happens-when-you-kill-a-process/ 这篇文章写的还是挺清楚的,这里我们主要看一下9号信号,也就是传说中的强杀。与其他信号一样,在系统发送kill&n...Jan. 31, 2016, 8:22 p.m.作者:zachary分类:Linux相关阅读(2123)评论(0)
linux内核编程之sys接口以及workqueue
sys接口顾名思义/sys目录下的接口,linux系统是一个一切都是文件的系统,通过sys接口可以与内核的模块进行互动下面是默认sys目录下的内容下面通过编程可以实现我们自己的模块以及sys接口。实现sys接口并不难,只要会使用几个api就可以了,下面以一个实际的例子说明sysfs.c#include<linux/module.h> #include<linux/kernel.h> #include<linux/init.h> #include<linux/interrupt.h> #include<linux/sched.h> #include<linux/workqueue.h> #include<linux/sysfs.h> #include<linux/string.h> ...Dec. 24, 2015, 11:04 p.m.作者:zachary分类:Linux相关阅读(2021)评论(0)
Android开发遇到的破事(一)
在前几天做了一个demo,昨天升级了一下SDK,突然一下子就不能运行了,报了两个错。1、报了android.os.NetworkOnMainThreadException的异常,这个好说,百度一下,easy。原因:原来是在4.0之后在主线程里面执行Http请求都会报这个错解决办法:在启动的activity的onCreate函数添加以下代码:StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteO...Dec. 9, 2015, 9:54 p.m.作者:zachary分类:Android阅读(1858)评论(0)