推荐文章 New Blog
Android与selinux
前两天写demo的时候碰到一个问题,一个app怎么才能访问proc目录的一个自己新建的节点,下面以/proc/zachary为例。通过把zachary文件访问权限设置为777,还是不能fopen(“/proc/zachary”,”w”),经过一番google,原来是selinux的关系。为了使得app能够访问上面的节点,需要几个步骤,记录下来给需要的同学。1、 获取进程的分类,以com.android.setting为例。将该应用启动,后通过ps –Z获取分类 可以看到这个进程的分类为system_app。2、在file.te中加入type zachary_file, fs_type;用于定义类型,zachary_file就是我们自定义的类型,查看file.te中,linux有很多的类型,包括fs_type, sysfs_type, dev_type, file_typ...Oct. 13, 2016, 1:08 p.m.作者:zachary分类:Android阅读(2356)评论(0)
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阅读(2125)评论(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阅读(2148)评论(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阅读(2244)评论(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阅读(1751)评论(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阅读(1848)评论(0)
android smsManager发不出短信,why?
前两天,在android上写了个群发短信的小app,在写的时候碰到一个问题,以前不知道(见识短浅),现在记下来。我们知道一条短信不能超过一定的字符,我就因为这个调了2个多小时的程序。我发短信的函数就是使用smsManager,权限也有的,代码如下SmsManager smsManager=SmsManager.getDefault();smsManager.sendTextMessage(address[count], null, Content, null, null);一开始,这个是写在其他线程的,发送居然发不出去,然后在主线程中试了试发送“test”,发出去了,我以为这个只能放在主线程中,于是把函数移到主线程中了。。。还是发不出去。。。怎么回事。。。网上搜来搜去,加上实验,发现原来字符一多(具体一条短信多少字符,自行百度)就不能发送了。。。原来这个函数不会自动拆分短信的。。。最后把短...March 29, 2015, 2:02 p.m.作者:zachary分类:Android阅读(1766)评论(0)
C语言宏定义展开方式
测试环境Mac OS(Big Sur) + Apple clang version 12.0.5我们先说结论:**宏定义由外向内平行展开,当碰到##或着#宏,参数不再做宏展开**下面用例子说明示例#define CON_STR(a, b) a ## b #define STR(a) #a #define CALL_STR(arg) STR(arg) // CON_STR( CON_STR(1, 2), 3 ); // CON_STR( STR(1), 3 ); // CON_STR( CALL_STR(1), 3 ...Jan. 1, 2022, 4:32 p.m.作者:zachary分类:C语言阅读(2405)评论(0)