这次是真的好长时间都没有写博客了,主要不是因为工作上的事,主要还是这个问题真的有点复杂,实现起来有点麻烦,所以研究了很长时间(大约有一个月的时间)。但是幸好最后问题搞定了~~

一、问题场景

想实现360手机卫士那样可以拦截应用请求系统的一些权限(比如:位置信息,通讯录等)

二、目的

公司开发的app需要使用音频权限,但是总是被360那样的安全管家所拦截(root之后的手机),所以想通过底层的拦截,我们可以做到不会被其他应用所拦截。

三、资料

http://blog.csdn.net/jinzhuojun/article/details/9900105

http://bbs.pediy.com/showthread.php?t=186880

http://bbs.pediy.com/showthread.php?t=157419

http://blog.csdn.net/l173864930/article/details/38455951

四、了解到的知识

这次的研究和之前的所有研究可能不一样,因为之前那些研究即使再难,也就花费不到一周的时间,而且那些研究的知识点也是很单一的,但是这次的研究所掌握的知识是很全面的。

1.如何在Linux中执行NDK编译那些会使用带有Androoid系统源码头文件的程序

2.如何编译引用多个so文件的程序

3.如何在底层C++中动态的加载apk/dex文件,然后执行指定的方法

4.如何获取系统中所有的log信息(包括所有的应用进程)

5.如何在Linux中动态的加载so文件,然后执行指定的方法(相当于Java中的反射机制)

6.如何在Linux中创建Socket连接

7.如何在C程序中引用C++的动态库so

四、总结

我这次拦截主要还是根据网上的普遍方法,两种方法实现拦截

1.通过底层C注入和拦截

http://blog.csdn.net/jiangwei0910410003/article/details/39346151

2.通过framework层注入和拦截

http://blog.csdn.net/jiangwei0910410003/article/details/40949475

好吧,后续的两篇文章就开始正式来说一下如何实现这两种方式,请继续关注后续的文章~~

更多内容:点击这里

关注微信公众号,最新Android技术实时推送

Android中对应用程序的行为拦截实现方式概要的更多相关文章

  1. Andrdoid中相应用程序的行为拦截实现方式之----从Java层进行拦截

    致谢: 感谢 简行之旅的这篇blog:http://blog.csdn.net/l173864930/article/details/38455951,这篇文章是參考这篇blog的进行一步一步操作的, ...

  2. Andrdoid中对应用程序的行为拦截实现方式之----从Java层进行拦截

    致谢: 感谢 简行之旅的这篇blog:http://blog.csdn.net/l173864930/article/details/38455951,这篇文章是参考这篇blog的进行一步一步操作的, ...

  3. Andrdoid中对应用程序的行为拦截实现方式之----从底层C进行拦截

    之前的一篇概要文章中主要说了我这次研究的一些具体情况,这里就不在多说了,但是这里还需要指出的是,感谢一下三位大神愿意分享的知识(在我看来,懂得分享和细致的人才算是大神,不一定是技术牛奥~~) 第一篇: ...

  4. Android中获取应用程序(包)的大小-----PackageManager的使用(二)

    通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidMani ...

  5. Android中H5和Native交互的两种方式

    Android中H5和Native交互的两种方式:http://www.jianshu.com/p/bcb5d8582d92 注意事项: 1.android给h5页面注入一个对象(WZApp),这个对 ...

  6. 1.Android中解析json程序代码

    Android程序解析json数据可以通过gson的方式,这种情况需要导入相应的jar包.测试代码如下: @Override protected void onCreate(Bundle savedI ...

  7. Android中通过拨号调起应用的实现方式及特殊情况处理

    Android中有时我们会有这样的需求:通过拨号调起我们的程序.这个需求如何实现呢? 思路当然是在我们的应用中实现一个广播接收器(BroadcastReceiver),对打电话时系统发出的广播进行拦截 ...

  8. Android更改桌面应用程序launcher的两种方式

    http://blog.csdn.net/mdx20072419/article/details/9632779/ launcher,也就是android的桌面应用程序.下图是我正在使用的魅族手机的l ...

  9. Android中多线程编程(三)Handler更新UI的方式

    Handler更新UI的方式和原因以及遇到的问题 1.方式: 仅仅能通过Handler来更新UI. 代码例如以下: package com.chengdong.su.handlerdemo; impo ...

随机推荐

  1. boost multi index

    Boost.MultiIndex makes it possible to define containers that support an arbitrary number of interfac ...

  2. shell变量,字符串,数组

    一.shell变量定义: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头: 中间不能有空格,可以使用下划线: 不能使用标点符号: 不能使用bash里的关键字. 变量使用: 使用一个定义过的 ...

  3. STM32串口USART通信总结

    一.GPIO设置USART的初始化 /**************************实现函数******************************************** *函数原型: ...

  4. springcloud的config

    CONFIG服务端 加入依赖: <dependency> <groupId>org.springframework.cloud</groupId> <arti ...

  5. 学习.net的步骤

    第一步 学习HTML与CSS 这并不需要去学一大堆的诸如Dreamweaver,Firework之类的各种网页设计工具,关键是理解HTML网页嵌套的block结构与CSS的box模型.许多ASP.NE ...

  6. flask中app.py: error: invalid choice: 'insert'........的问题

    在flask中,分为两种操作方式,url指向函数或者终端指向函数,最终目的就是让函数执行,触发方式不同.终端执行更加安全, 另外如果在终端执行的时候出现 : 就是说明 insert 没有在@ mana ...

  7. 简单使用Laravel-admin构建一个功能强大的后台管理

    Laravel-admin可以快速构建一个功能强大的后台,方便快速开发. 以下内容记录简单使用Laravel-admin,以及遇到小错误的解决方法. Laravel-admin 依赖以下环境 需要提前 ...

  8. 框架-.NET:ASP.NET Core

    ylbtech-框架-.NET:ASP.NET Core ASP.NET Core是一个免费且开放源代码的Web框架,以及由微软和社区开发的下一代ASP.NET.它是一个模块化框架,既可以Window ...

  9. 60、saleforce的future方法

    测试future方法的异步执行 public with sharing class FutureSample { //future在自己线程中运行,直到资源可用才运行 @future public s ...

  10. ng-repeat高级用法

    ng-repeat高级用法: 遍历数组: <li ng-repeat="item in array">{{item}}</li> 遍历对象: key:对象的 ...