自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎关注微信公众号:DroidMind

技术干货,工具分享

原创 Android 第三方 ROM

LineageOS:原 CyanogenMod(CM),因原小组中几位成员不满其后的商业化不开源之路,以 Chainfire 为代表的几位成员遂脱离 CM 小组创立了现在的 LineageOS,其沿袭了 CM 稳定的特点,虽尚存少许 Bug,但瑕不掩瑜。国内有一个LineageOS 中文论坛 。 ...

2019-08-23 21:14:55 1107 0

原创 Android ROM定制与实战教程视频下载

Android ROM定制与实战教程下载地址为: https://pan.baidu.com/s/1kN0bw_PZoi8w9lEsCvKYvg 提取码获取方式:扫描关注下面微信公众号,回复关键字: romvideo

2018-09-26 08:53:08 664 2

原创 Android应用去广告方法盘点

应用广告方式1、小平台应用由于其没有自己的广告系统,它们一般会嵌入第三方广告平台的SDK来显示广告,所以只需要分析第三方平台的SDK就行。2、大平台应用由于其拥有自己的广告平台,需要对其单独进行分析。去广告的场景 1、游戏2、视频3、其他 广告类应用的特点 对于一些包含广告的应用,它首先会进行广告...

2018-03-13 15:34:51 7752 0

原创 如何修改Android的ro属性

一、Android ro属性概述在adb shell中输入getprop命令就可以获取到当前系统所有的属性内容:另外,如果我们系统获取到指定属性的属性值,我们也可以通过在adb shell中输入getprop+属性名来获取,设置属性也是一样的,可以通过setprop+属性名+新值来给指定的属性名称...

2018-03-13 15:24:25 6847 2

原创 Dalvik虚拟机中Java native方法的调用过程

我们知道,Java native方法的注册形式有两种,一种是主动注册,一种是默认的被动注册,如果我们希望弄清楚java native方法的调用过程,我们首先就需要搞清楚两种注册方式的实现原理,下面我们先分别看看这两种注册方式。 一、Java native方法的主动注册 首先说说JNINativ...

2018-02-06 19:55:26 1680 0

原创 Dalvik虚拟机中ClassLoader的创建过程

首先我们来看看下面代码 我们知道,在Java中,类的加载是使用的委托机制,上面的代码就是打印ClassLoader的委托关系。它的运行结果如下: 可以看到,我们应用的加载器是PathClassLoader,它的父加载器是BootClassLoader。下面我们通过代码来进行分析。 一...

2018-02-01 10:44:14 255 0

原创 Dalvik虚拟机中Java类的加载过程

首先需要明白一点,Java类在使用之前必须先被加载。关于加载其实分为显式加载和隐式加载,显式加载就是我们通过自己来调用相应的加载方法来对特定的类进行加载,隐式加载就是在使用类的时候如果这个类没有被加载过可能就会触发其加载,这个可能是无感知的。 下面对类的加载进行一下梳理,主要有以下情形来实现...

2018-01-03 12:35:37 712 0

原创 J2V8:在Java中运行JavaScript

说到J2V8之前,需要首先说说由Google开发的V8 JavaScript 引擎 , JavaScript引擎的作用就是对JavaScript代码进行解析并且运行。V8是一个比较独立的模块,它可以嵌入到我们自己的应用中,这样就可以在我们的应用中运行JavaScript代码了,V8 JavaScr...

2017-12-27 18:33:59 6044 1

原创 在JNI中创建一个Java虚拟机实例

Java语言分为编译和运行两个阶段。 第一个阶段是使用javac命令完成的,第二阶段是使用java命令完成的。 下面的目标就是写一个java程序,然后手动创建一个Java虚拟机实例来执行该java程序。 创建一个Demo.java文件 public class...

2017-12-25 13:59:51 557 0

转载 Android FrameWork底层开发视频

=========================== 下面的链接失效了,这里重新给个 链接: https://pan.baidu.com/s/1iZ1SXS4Oy8drjaQOJ2kR4g 密码: 62ua ============================= 1.如题,...

2017-12-15 10:53:26 2814 1

转载 android 常见的AOSP命令

在build/envsetup.sh定义了一些函数供我们直接使用 Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment: - lunc...

2017-12-14 14:16:25 1040 0

转载 Android系统定制和源码开发以及源码编译(附视频)

http://www.jianshu.com/p/46c63dfd5c89 欢迎关注微信公众号:DroidMind 精品内容独家发布平台 呈现与博客不一样的技术干货

2017-12-14 14:03:15 1522 0

原创 Android 开发的技术方向

1、应用开发 2、源码级开发 分为系统应用开发,Framework开发,底层浏览器内核开发,音视频编码开发、虚拟机开发、底层驱动开发等系统ROM相关的开发 3、安全、逆向,病毒分析 欢迎关注微信公众号:DroidMind 精品内容独家发布平台 呈现与博客不一样的技术干货 ...

2017-12-13 17:11:39 2073 1

原创 Android java层binder解析 2

在SystemServer中会调用下面进行ActivityManagerService的注册 context = ActivityManagerService.main(factoryTest); ActivityManagerService.setSystemProcess(); 在...

2017-12-12 16:48:39 251 0

原创 Android java层binder解析1

下面直接从ServiceManager的addService看起 ServiceManager.java public static void addService(String name, IBinder service) { try { getIServ...

2017-12-12 12:43:17 441 0

转载 Android SystemServer的创建过程

SystemServer进程是有Zygote fork出来的一个进程,下面来看看zygote进程的执行过程 frameworks/base/cmds/app_process/app_main.cpp int main(int argc, char* const argv[]) { ...

2017-12-11 17:02:47 417 0

转载 Android native层事件传递 1

InputManagerService在SystemServer中的ServerThread线程中启动 /frameworks/base/services/java/com/android/server/SystemServer.java SystemServer.java-&am...

2017-12-08 16:53:01 251 0

转载 Android输入系统简介

1、当输入设备接入到android设备并且可用的时候,Linux内核会在/dev/input/下创建名为event0-n或者其他名称的输入节点,但输入设备不可用的时候,则会删除对应的节点。 2、在用户空间可以通过ioctl的方式从这些设备节点获取对应的输入设备的类型、厂商、描述等信息。 3、当...

2017-12-08 11:25:15 216 0

转载 Android Java层事件传递

android事件传递如图所示,我们下面重点关注的是上图中红色框内的处理流程。 一、Activiy的事件响应接口Callback 首先看Activity的实现,如下,Activity实现了一个特殊的接口:Window.Callback。 public class Activity...

2017-12-07 20:55:55 144 0

转载 andriod binder-ServiceManager守护进程

ServiceManager是一个守护进程。它的main()函数源码如下: frameworks/native/cmds/servicemanager/service_manager.c int main(int argc, char **argv) { struct bi...

2017-12-07 19:50:49 124 0

转载 binder解析

static int binder_open(struct inode *nodp, struct file *filp) { struct binder_proc *proc; . . . . . . proc = kzalloc(sizeof(*proc), G...

2017-12-06 20:59:04 175 0

转载 Android 音频相关

1、音频采集 Android SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord,前者是一个更加上层一点的API,它可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3等)并存成文件,而后者则更接近底层,能够更加自由灵活地控制,可以得到...

2017-12-06 16:59:03 197 0

转载 Android音视频相关

1、Adndroid VoIP相关的开源应用有哪些 ? imsdroid,sipdroid,csipsimple,linphone,WebRTC 等等 vitamio webRTC ffmpeg vlc ijkplayer 2、音频算法处理的开源库有哪些 ? speex、ffmpe...

2017-12-06 16:34:09 182 0

转载 Android浏览器开源项目

Chrome:https://github.com/pwnall chromium_webview:https://github.com/mogoweb/chromium_webview 365browser:https://github.com/mogoweb/365browser And...

2017-12-01 19:34:19 8042 0

原创 【Android进阶】Android Binder之ServiceManager注册服务解析1

下面将通过一个系列来对binder进行解析,虽然之前很多人都已经写过相关的博客,不过还是决定自己来写写,把整个思路理一理,增加自己对binder的认识,也同时希望对大家有所帮助。 首先我们来看的就是ServiceManager注册服务的过程,通过MediaPlayerService的注册过程来讲...

2017-11-30 20:15:15 284 0

原创 Android WindowManagerService解析(6)

前面说过,所有的UI的绘制最终调用的都是WindowManager的addView方法,另外从前面我们也可以知道,我们操作的是WindowManagerImpl对象的addView方法,下面我们先来看看addView方法。 public final class WindowManagerIm...

2017-11-28 16:47:18 305 0

原创 Android WindowManagerService解析(5)

强烈建议看这篇文章前把前面的几篇都看看,这样理解更深刻 下面来看看Toast的显示过程 一、Toast的创建 public static Toast makeText(Context context, CharSequence text, int duration) { To...

2017-11-24 17:07:52 259 0

原创 Android WindowManagerService解析(4)

看篇文章之前,建议先看看前面几篇,这样理解会更深刻,下面我们来看看PopupWindow的显示过程 一、PopupWindow的创建 public PopupWindow(Context context, AttributeSet attrs, int defStyleAttr, in...

2017-11-24 16:18:36 202 0

原创 Android WindowManagerService解析(3)

在前面 Android WindowManagerService解析(2)中,我们了解到了Activity背后的Window,下面我们来看看Dialog背后的Window 一、Dialog的创建 Dialog.java Dialog(Context context, int ...

2017-11-24 14:21:26 198 0

原创 Android WindowManagerService解析(2)

一、Activity背后的Window 每个Activity都对应一个Window,Activity并不是UI真实的载体,真实载体是Activity中的Window。 Activity.java private Window mWindow; final void attach...

2017-11-24 12:58:47 265 0

原创 Android WindowManagerService解析(1)

ContextImpl.java 服务的注册函数 private static void registerService(String serviceName, ServiceFetcher fetcher) { if (!(fetcher instanceof Stati...

2017-11-23 17:25:01 512 0

原创 Android反射工具类ReflectUtil

public class ReflectUtil { public static Object getField(String clazzName, Object target, String name) throws Exception { return getFiel...

2017-11-22 17:05:47 1346 0

原创 Android Hook PackageManager

通过前面文章 Android中的Context ,我们可以知道,当我通过Application、Activity或者Service调用getPackageManager()的时候,实质调用的都是ContextImpl类中的getPackageManager方法。 所以我们从Context...

2017-11-22 17:02:10 2033 0

原创 Android中的Context

1、Application中的Context private void handleBindApplication(AppBindData data) { data.info = getPackageInfoNoCheck(data.appInfo, data.compatInfo)...

2017-11-13 17:21:16 170 0

原创 Android应用的ClassLoader创建过程

还是从Application的创建说起 /frameworks/base/core/java/android/app/ActivityThread.java private void handleBindApplication(AppBindData data) { dat...

2017-11-13 17:07:08 503 0

原创 Android中的Resources解析

下面我们从Application的创建说起 /frameworks/base/core/java/android/app/ActivityThread.java private void handleBindApplication(AppBindData data) { /...

2017-11-13 16:53:31 349 0

原创 Android开源插件化框架汇总

按照时间先后排列 AndroidDynamicLoader https://github.com/mmin18/AndroidDynamicLoader PluginMgr https://github.com/houkx/android-pluginmgr/ Dynamic-load-...

2017-10-21 18:18:06 1247 0

原创 Android Dex文件数据结构解析

下面以Android4.4.2源码为例,来分析Dex文件的结构,这里分析的方式是将结构定义与实际的Hex字节码进行对照分析。 Dex文件结构图 1、查看/dalvik/libdex/DexFile.h,它里面包含了所有结构体定义。 2、我们将一个dex文件使用010Editor打开,...

2017-09-07 19:42:26 696 0

原创 Android代码生成与操作工具

Java源码生成工具 google auto https://github.com/google/auto javapoet https://github.com/square/javapoet Java字节码操作工具 ASM http://asm.ow2.org Javassis...

2017-09-04 18:17:00 726 0

原创 android 隐藏API显式调用以及内部资源使用方法

一、android.jar包 android.jar是我们Android应用开发包,它内部包含了我们在应用开发中需要使用的所有API调用。 二、显式使用 Android 隐藏 API 和内部 API 在进行Android应用开发的时候,一般会选择指定的编译版本,选择编译版本之后,我们的项目就...

2017-08-31 16:50:05 4374 1

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