- 博客(62)
- 资源 (19)
- 收藏
- 关注
原创 技术链接-NEW
Android签名机制之---签名过程详解 Android签名机制之---签名验证过程详解 Mipi LCD 通用移植调试流程 mipi 调试经验 Android键值上报流程 C++层Service的创建与使用 Android init.rc文件浅析 Android之四大组件、六大布局、五大存储 android 7.0新特性 应用层到开机进入recovery详解 An...
2017-12-29 13:18:49
485
转载 Android系统system用户权限和root权限的获取
在Android系统中,系统为每一个应用程序(apk)创建了一个用户和组。这个用户和组都是受限用户,不能访问系统的数据,只能访问自己的文件和目录,当然它也不能访问其他应用程序的数据。这样设计可以尽可能地保护应用程序的私有数据,增强系统的安全性和健壮性。 但是有一些应用程序是需要访问一些系统资源的。比如Setting程序,它需要访问WiFi,在系统中创建删除文件等等操作。怎样做到这一
2017-12-01 15:34:37
14880
1
转载 Android APK反编译就这么简单 详解
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的教程详解。(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)
2017-11-27 14:14:12
433
转载 Android studio 代码混淆及打包apk
Android Studio相关博客:Android Studio(一):介绍、安装、配置Android Studio(二):快捷键设置、插件安装Android Studio(三):设置Android Studio编码Android Studio(四):Android Studio集成GenymotionAndroid Studio(五):修改Andro
2017-11-27 14:05:42
2227
转载 Android Studio 默认keystore 以及自定义keystore
我们使用Android Studio 运行或测试我们的app 它使用一个默认的debug.keystore进行签名。这个默认签名(keystore)是不需要密码的,它的默认位置在 $HOME/.android/debug.keystore,如果不存在Android studio会自动创建它。例如我的debug.keystore就在C:\Users\Administra
2017-11-27 11:57:59
733
转载 Android Studio常见问题以及解决方式
转载地址:http://4259297.blog.51cto.com/4249297/1700031gradle build的时候出现的问题: Error:Execution failed for task ':app:packageDebug'. Duplicate files copied in APK META-INF/notice.txt 解决办法:http
2017-11-27 10:09:24
1854
转载 Android studio 生成自定义文件名 apk
Android studio 默认生成的apk文件名是这样的当我们需要生成自定义文件名apk的时候可以在Gradle文件中定义, 避免每次生成后还要改名.示例如下build.gradleapply plugin: 'com.android.application'def getTime() { return new Date().format("yyyyMMdd
2017-11-27 10:08:14
488
转载 AndroidStudio、gradle、buildToolsVersion关系
使用AndroidStudio 开发也已经2年了,每次gradle 或者studio 有推荐更新后,项目重新sync后都会报错,提示更新相应的其他版本,比如AndroidStudio、gradle、buildToolsVersion版本;先来说说概念AndroidStudio: 是Google官方基于IntelliJ IDEA开发的一款Android应用开发工具,,类似之前的eclip
2017-11-27 08:47:48
306
转载 深入理解PackageManagerService
由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在优快云博客中全文转发这两本书的全部内容 第4章 深入理解PackageManagerService本章主要内容:详细分析PackageManagerService本章所涉及的源代码文件名及位置:· SystemServer.javaf
2017-11-23 09:57:05
1532
转载 深入理解WindowManagerService
《深入理解Android 卷III》即将发布,作者是张大伟。此书填补了深入理解Android Framework卷中的一个主要空白,即Android Framework中和UI相关的部分。在一个特别讲究颜值的时代,本书分析了Android 4.2中WindowManagerService、ViewRoot、Input系统、StatusBar、Wallpaper等重要“颜值绘制/处理”模块第
2017-11-21 15:26:13
4726
转载 深入理解ActivityManagerService
由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在优快云博客中全文转发这两本书的全部内容第6章 深入理解ActivityManagerService本章主要内容:· 详细分析ActivityManagerService本章所涉及的源代码文件名及位置:· SystemServer.java
2017-11-21 15:24:12
4133
3
转载 libxxx.so- text relocations问题的终极解决方案
问题表现形式错误或警告日志当targetSdkVersion>=23且使用debug签名时,在6.0+的Android设备上运行App会输出以下错误Log:E/linker: /data/app/packagename/lib/arm/libxxx.so: has text relocations W/System.err: java.lang.UnsatisfiedLinkE
2017-11-16 15:16:50
2271
转载 android lcd 背光控制流程
此文章是网上看到的,在MTK平台基础上的背光控制流程的分析。个人觉得写得比较详细,于是截取部分内容转载出来。不过话说在前头,对于lcd而言,决定显示效果的有几个因素:pwm,gama(屏幕灰度),饱和度,对比度 。如果单单改变了pwm的调制范围(如0--255改为0--100),用示波器可以看到pwm占空比的变化。但是,肉眼看到的效果还是没有任何变化,因为gama的因素的作用,这时也要相应
2017-11-10 13:17:16
1277
转载 android camera(一):camera模组CMM介绍
关键词:android camera CMM 模组 camera参数平台信息:内核:linux系统:android平台:S5PV310(samsung exynos 4210) 作者:xubin341719(欢迎转载,请注明作者)下载:常用摄像头规格书(个别有android驱动程序) :bf3703 30W、gc0308 30W、ov7670、gt2005 20
2017-11-07 21:57:02
258
转载 Qualcomm平台camera调试移植入门
1 camera基本代码架构 高通平台对于camera的代码组织,大体上还是遵循Android的框架:即上层应用和HAL层交互,高通平台在HAL层里面实现自己的一套管理策略;在kernel中实现sensor的底层驱动。但是,对于最核心的sensor端的底层设置、ISP效果相关等代码则是单独进行了抽离,放在了一个daemon进程中进行管理:图1 Qualcomm平台c
2017-11-07 11:40:24
409
转载 warning: the frame size of 1040 bytes is larger than 1024 bytes
问题描述: 在编译内核模块驱动时,如果出现如下警告信息:warning: the frame size of 1040 bytes is larger than 1024 bytes。主要是因为内核中设置了堆栈报警大小,其默认为1024bytes。我们主要将其修改为4096既可以消除告警信息。如果解决:(1)make menuconfig(2)kernel hack
2017-10-25 16:28:06
1881
转载 Linux双向循环链表的实现
链表是一种重要的数据结构,应用的非常广泛。链表分为单向链表与双向链表,一般的实现就是在结构体中内嵌指向下一个元素的指针。例如:[cpp] view plain copyprint?struct name { int num; ...; struct name *next; struct name *prev; }
2017-10-24 10:39:22
311
转载 Android输入事件从读取到分发五:事件分发前的拦截过程
在前面的文章:Android输入事件从读取到分发三:InputDispatcherThread线程分发事件的过程 一文中已经提过事件在分发前要做拦截的事情,只不过当时没有展开来分析,因此这篇文章的主要目的就是分析事件在分发前的拦截过程。(注:Android源码版本为6.0)在Android输入事件从读取到分发三:InputDispatcherThread线程分发事件的过程 一文中我们分析到
2017-10-19 11:16:04
489
转载 Android输入事件从读取到分发四:InputDispatcherThread发送事件到View结构树的过程
通过上一节的分析,我们发现InputDispatcherThread使用InputChannel的sendMessage方法发送了一条消息,但是我们不知道谁在接收这条消息。因此,这一节我们的目标很明确,弄懂”是谁在接收消息,然后这条消息是怎么分发到View的结构树中的”。(注:分析使用的Android源码版本为6.0)上一节我们说InputChannel的本质是linux本地套接字,因为它
2017-10-19 11:15:25
2222
转载 Android输入事件从读取到分发三:InputDispatcherThread线程分发事件的过程
分析完事件的读取后,东忙西忙,不知不觉已过去了快五个月了…也不是说没有时间把这部分源码分析完,而是实在是分析不下去,因此转战到其他地方去了。然而这一块始终是心头那不舍的惦记,经过一段时间的沉淀,又参考了网上很多大神的文章,然后再来阅读源码,渐渐感觉到能看出点眉目了。因而事不宜迟,赶紧做个记录吧(注:分析使用的Android源码版本为6.0)。前面两篇文章分析输入事件的读取,通过分析,发现时
2017-10-19 11:14:34
266
转载 Android输入事件从读取到分发二:谁在循环监听事件的到来
通过上一节初步阅读代码,已经找到了读写/dev/input/设备文件节点的位置。但是最后,我觉得应该有一个线程,一直循环监听这些输入设备,有事件的时候就去处理,没有事件的时候就睡眠,等待事件的到来。那么,这部分的代码是怎么样的呢?上一节只是为了定位android系统在什么地方监听输入设备,所以很多地方没有仔细分析,这一节,带着文章开头提出的问题,再一次分析源码,而我们的入口,任然是系统启动后,
2017-10-19 11:13:52
445
转载 Android输入事件从读取到分发一:是谁在读取输入事件
零.写在最前第一次尝试阅读android输入系统的代码,免不了理解错误,如有错误,欢迎指正。一.提出问题android是基于linux kernel的,linux的事件获取需要读/dev/input下的设备文件节点。对android系统而言,是谁在读这些设备文件节点?读到以后又是怎么把它发送给view的?二.猜测与验证事件是一种看不到的东西,在android下,看不见的东西一般
2017-10-19 11:13:14
548
转载 Linux inotify功能及实现原理
1. inotify主要功能它是一个内核用于通知用户空间程序文件系统变化的机制。众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求
2017-10-19 08:32:20
222
转载 epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
2017-10-19 08:30:36
207
转载 Android Binder机制(超级详尽)
1.binder通信概述 binder通信是一种client-server的通信结构, 1.从表面上来看,是client通过获得一个server的代理接口,对server进行直接调用; 2.实际上,代理接口中定义的方法与server中定义的方法是一一对应的; &
2017-10-18 10:03:21
227
转载 Android Uevent 分析,从kernel到framework
http://blog.sina.com.cn/s/blog_6100a4f101015uwh.htmlhttp://www.cnblogs.com/armlinux/archive/2011/12/05/2396773.html--------------------------Uevent是内核通知android有状态变化的一种方法,比如USB线插入、拔出,电池
2017-10-16 16:41:40
285
转载 DEVICE_ATTR的使用
DEVICE_ATTR的使用使用DEVICE_ATTR,可以在sys fs中添加“文件”,通过修改该文件内容,可以实现在运行过程中动态控制device的目的。类似的还有DRIVER_ATTR,BUS_ATTR,CLASS_ATTR。这几个东东的区别就是,DEVICE_ATTR对应的文件在/sys/devices/目录中对应的device下面。而其他几个分别在driver,bus,class中对
2017-10-12 13:39:32
395
转载 Android中获取应用程序(包)的大小-----PackageManager的使用(二)
转载请注明出处:http://blog.youkuaiyun.com/qinjuning 通过第一部分Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及AndroidManife.xml定义的节点信息类XXXInfo类都有了一定的认识。 本部分的内容是如何获取安装
2017-10-10 14:01:06
292
转载 Android中获取应用程序(包)的信息-----PackageManager的使用(一)
转载请注明出处:http://blog.youkuaiyun.com/qinjuning 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename、label、icon、占用大小等。具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename、label、icon等 ;
2017-10-10 13:58:18
279
转载 Android.mk高级写法
原本只是想记录一些常用的使用技巧,但是越写越得意(>_ 写这篇文章的起因当然是实际工程需要,在搭建一个网游的android客户端时遇到种种恶心的问题,比如文件过多导致"Argument list too long"的错误,又比如增加和删除文件时都需要维护好Android.mk配置,虽然可以通过写个脚本自动生成android.mk,但是终归不是很漂亮的解决方案。通过本文所提到的几个
2017-10-08 11:33:03
354
转载 Framework中的连接管理机制
上一节《Wifi服务框架介绍》介绍了WIFI的大致框架,本文主要介绍连接管理中的几个重要角色,包括:NetworkInfo、NetworkAgent、ConnectivityService、ConnectivityManager等。 为了便于讨论,本文选取一个具体问题展开分析,那就是:当当前的网络连接变为不可用时,系统如何自动切换其他可用的网络连接的。 我们知道
2017-09-30 16:02:04
351
转载 网络连接评分机制之NetworkFactory
在开机时,各个提供网络连接的对象需要向ConnectivityService注册自己,并把自己所提供的网络的分值告诉ConnectivityService。 为了ConnectivityService便于统一管理,每一个具备提供网络服务的对象都需要创建一个NetworkFactory的子类对象,并利用该对象注册自己,以及提供自己的分值。一、NetworkFactory
2017-09-30 15:32:31
452
转载 Android源码中学习文档如何查看
备注:源码中的docs包是Android7.0中的docs包。 Android源码中其实已经给开发者提供好了开发文档。我们常常需要翻墙上google官网查阅一些资料。但是今天发现其实Android源码中已经自带了google官网的学习文档,我们本地使用google_appengine引擎就可以在本地查阅google的学习文档了。1、下载google_appengine源码包这个在CSD
2017-09-29 08:44:24
272
转载 数据业务建立流程之发起网络连接过程
经过前面这些过程,网络连接所需要的条件就全部准备就绪,接下来就是等待网络接入。 我们把网络接入过程简单分为三个阶段: 触发阶段 ----该阶段是由各种不同事件触发的,比如SIM载入完毕、PS域Attach成功、通话结束、APN改变等,该阶段的最终都是要调用setupDataOnConnectableApns()方法;
2017-09-25 14:05:54
574
转载 数据业务建立流程之APN参数的激活
APN参数在前面《数据业务建立流程之常规APN参数的创建》一文中已经都被创建完毕并存入mAllApnSettings的数组中,但是这些APN参数默认都是没有被Enable的,只有当APN被Enable之后,该APN才可以被使用,下面我们就来看如何将一个APN参数激活。 APN的Enable是通过TelephonyNetworkFactory中的needNetworkFor()方法
2017-09-25 14:04:30
626
转载 数据业务建立流程之常规APN参数的创建
区别于前面的紧急APN,这里的APN参数主要指常规的SIM卡APN参数,手机在上网时必须传递正确的APN参数给运营商才可以接入移动网络,而常规APN参数的创建是由监听器触发的。 前面在DcTracker初始化过程中注册了大量监听器,其中有两个监听器可以触发APN的创建过程:1、SIM载入完毕;2、APN改变。这两个事件所导致的APN创建流程也都是类似的,分别是:
2017-09-25 14:03:22
900
转载 数据业务建立流程之DcTracker创建过程
一、DcTracker介绍 DcTracker是Telephony框架中负责数据业务的核心(类似于GsmCallTracker是通话业务核心,GsmServiceStateTracker是网络CS业务的核心),所有对数据网络的请求(打开关闭数据开关、切换数据卡、修改APN参数等)都会发送到该处理中心来处理。本节所涉及的大部分代码也都在该对象中。下面我们先来看该对象的初始化
2017-09-25 14:02:15
706
转载 Android数据业务发起流程
本节我们来介绍手机的数据网络连接建立过程。 所谓数据网络就是使用手机SIM卡上网,该上网方式需要满足两个条件:选择并激活合适的APN参数,PS域已经处于ATTACH状态。 下面我们分四节来分别介绍Android L上数据业务的发起流程。 《数据业务建立流程之DcTracker创建过程》 《数据业务建立流程之常规APN参数的创建
2017-09-25 13:59:42
945
1
转载 深入理解SELinux SEAndroid
按哥的习惯,应该是全部洗剪吹完后再发,不过今年是马年,什么都强调 马上。所以 现在就先奉献 马上有第一部分 祝各位同仁,朋友 马年快乐。 深入理解SELinux SEAndroidSEAndroid是Google在Android 4.4上正式推出的一套以SELinux为基础于核心的系统安全机制。而SELinux则是由美国NSA(国安局)和一些公司(RedHat、Tresy
2017-09-24 10:30:06
16938
1
转载 Android 5.1 权限问题解决方法(测试可用)
Android 5.x 权限问题解决方法 一、 android 5.x开始,引入了非常严格的selinux权限管理机制,我们经常会遇到因为selinux权限问题造成的各种avc denied困扰。 本文结合具体案例,讲解如何根据log来快速解决90%的权限问题。 遇到权限问题,在logcat或者kernel的log中一定会打印avc denied提
2017-09-23 15:27:42
6370
编译Andorid源码的时候签名aboot,编译ota包的时候更新aboot和splash。
2020-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人