framework
betterAndroider
总结自己,一点一滴,用博客见证我的成长。
展开
-
android中修改framework层代码后怎样操作才能看到修改后的效果?
1.下面方法适合真机:下载android源码,然后编译你修改的framwork的代码,会生成framework.jar,然后push到system/framework目录下,重启机器!ok 2,下面方法适合模拟器: (1):用unyaffs解压,你下载的sdk目录下system.img,然后替换其中的framework.jar,然后再压缩成新的system.img;然后启动模拟器就ok转载 2016-11-09 11:05:38 · 867 阅读 · 0 评论 -
Android 中 C++ Thread线程用法
1、Android把线程C++封装Thread类,它是线程的基类 2、使用Thread时,创建一个类继承于Thread类,实现threadLoop()方法是纯虚函数,在子类中实现 3、启动线程,调用run()函数class Thread : virtual public RefBase//RefBase封装sp、wp智能指针{public:转载 2017-08-14 19:50:53 · 1913 阅读 · 0 评论 -
App添加Selinux权限问题
一、android 5.x开始,引入了非常严格的selinux权限管理机制,我们经常会遇到因为selinux权限问题造成的各种avc denied困扰。 本文结合具体案例,讲解如何根据log来快速解决90%的权限问题。遇到权限问题,在logcat或者kernel的log中一定会打印avc denied提示缺少什么权限,Command:cat /proc/kmsg | gre转载 2017-08-03 16:20:54 · 6782 阅读 · 1 评论 -
为Android添加开机启动脚本
本文介绍了一种在Android 4.2.2源码中添加、修改文件或者代码,来达到使android在启动时,执行位于/system/etc/目录下的shell脚本文件的方法。 由于平台不同,可能细节上多有差异,但是大体方式应该是相同的。最近在做项目的过程中,遇到了这么一个需求,需要在Android(4.2.2)启动时候执行以下命令,命令的具体含义不再解释:moun转载 2017-07-31 14:47:59 · 1369 阅读 · 1 评论 -
Android init.rc如何启动service去执行sh脚本
在Android开发中经常会遇到,在应用层想去执行一个脚本来完成某些底层相关的操作,但在应用层又没有root权限。所以,老大给出一种方法完美解决此问题,又把上层和底层进行了隔离,非常好的策略。1、在需要执行脚本的时候,应用层去设置一个property,在init.rc中去监测此property的值,当监测到此property的值符合要求时,去start service,来执行我们的转载 2017-07-29 19:01:10 · 2193 阅读 · 0 评论 -
Android编译环境 - 编译Native C的helloworld模块
Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文件本身是比较简单的,不过它并不是我们熟悉的Makefile,而是经过了Android自身编译系统的很多处理,因此要真正理清楚其中的联系还比较复杂,不过这种方式的好处在于,编写一个新的Android.mk来给An转载 2017-07-17 10:38:13 · 351 阅读 · 0 评论 -
android之APP模块编译
一,如何把app编进系统 a.源码编译,在packages/apps目录下有安卓原生的app,以Bluetooth为例,源码根目录下有Android.mk文件: packages\apps\Bluetooth[html] view plain copyLOCAL_PATH:= $(call my-dir) include转载 2017-07-13 09:59:47 · 1319 阅读 · 0 评论 -
清华镜像下载Android源码
注意: 本镜像是 AOSP 镜像,Android SDK因版权原因,我们不能提供镜像服务。参考 Google 教程 https://source.android.com/source/downloading.html, 将 https://android.googlesource.com/ 全部使用 https://aosp.tuna.tsinghua.edu.cn/ 代替即可。由转载 2017-04-22 18:21:06 · 624 阅读 · 0 评论 -
Android framework add service
From hereAndroid系统本身提供了很多系统服务,如WindowManagerService,PowerManagerService等。下面描述一下添加一个系统服务的具体步骤。1、 撰写一个aidl文件,定义服务的接口,将在编译过程中通过aidl工具生成对应的java接口。一般系统服务的aidl文件都放在framework\base\core\java\转载 2017-04-19 14:11:31 · 765 阅读 · 0 评论 -
Parcel_进程间数据传递
Parcel,即打包。为什么需要打包呢?是为了序列化。如果要在进程之间传递一个整数,很简单,直接传就行了;如果要传一个字符串,就稍微复杂了点:需先分配一块可以容纳字符串的内存,然后将字符串复制到内存中,再传递(新手可能问:为啥不直接把字符串的引用传过去呢?学过C/C++的地球人都知道:进程有自己的内存地址空间,一个进程中的1000地址可能在另一个进程中是100000,Java对象的引用跟本上还转载 2017-08-23 20:12:14 · 886 阅读 · 0 评论