![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 79
楚湘潇瑶
这个作者很懒,什么都没留下…
展开
-
Android网络切换分析
在Android系统中,不同类型的网络同时开启时,系统总会自动选择一种网络。这是怎么实现的呢?我们不难想到,如果各种网络已经事先定义好了优先级,那么系统就能根据网络类型的优先级自动进行选择。下面将详细讲述:1. 网络优先级配置文件 各种不同类型的网络是在文件config.xml中进行配置,config.xml的路径如下:\android\frameworks\base\cor转载 2016-11-29 09:51:21 · 1945 阅读 · 0 评论 -
携程Android App插件化和动态加载实践
编者按:本文为携程无线基础团队投稿,介绍它们已经开源的Android动态加载解决方案DynamicAPK,本文作者之一,携程无线研发总监陈浩然将会在ArchSummit北京2015架构师大会上分享架构优化相关内容,欢迎关注。携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验。本文将详细介绍Android平台插件式转载 2017-02-21 15:32:01 · 822 阅读 · 0 评论 -
Android Binder 全解析(1) -- 概述
摘要 如果各位玩过《炉石传说》,那么可能对法师的职业卡「不稳定的传送门」很有印象,特别是没有欧洲玩家,经常能够拿到其他职业的强力单卡。Android 也提供了传送门,让我们可以像使用本地方法一样,调用其他进程的方法,他有一个响亮的名字,Binder! Binder 在 Android 是如此的重要,承当起整个Android的通信任务,作为优秀的Android工程师有什么理由不了解了?在接下来的转载 2017-03-20 10:55:29 · 228 阅读 · 0 评论 -
Android Binder 全解析(2) -- 设计详解
摘要 在上一篇文章中介绍了什么是Binder? 为什么我们需要它?在这一篇文章中,将通过类比的思路来介绍 Binder 的设计原理,作为上一篇文章的补充。这篇文章只是从设计的概念出发进行理解,不设计太多的代码细节,如果想对具体实现感兴趣,可以参考老罗的文章。希望通过这篇文章,能够帮助大家理解整个 Binder 运作机制。 在这篇文章结束后,将介绍 Binder Token的 妙用,和 Deat转载 2017-03-20 10:56:59 · 312 阅读 · 0 评论 -
Android Binder 全解析(3) -- AIDL原理剖析
摘要 本文是 Android 系统学习系列文章中的第二章节,在前面一些细节概念的铺垫下,大体上知道 Binder Framework 是怎么运作的,在这边文章中,将详细说明下 Binder Framework 的具体实现,这一套机制如何盘活整个 Android 系统。对此系列感兴趣的同学,可以收藏这个链接Android 系统学习,也可以点击 RSS订阅 进行订阅。 DONE:转载 2017-03-20 11:02:09 · 317 阅读 · 0 评论 -
Android中的Service:默默的奉献者 (1)
前言这段时间在看一些IPC相关的东西,这里面就不可避免的要涉及到service,进程线程这些知识点,而且在研究的过程中我惊觉自己对这些东西的记忆已经开始有些模糊了——这可要不得。于是我就干脆花了点心思温故了一下,就有了这篇博文。非常感谢Google的官方文档——尤其是其中部分文章有中文版了之后。正文1,什么是service?Service是一个可以在后台执行长时间操作而不使用用转载 2017-03-20 14:57:56 · 225 阅读 · 0 评论 -
Android中的Service:Binder,Messenger,AIDL(2)
前言前面一篇博文介绍了关于Service的一些基本知识,包括service是什么,怎么创建一个service,创建了一个service之后如何启动它等等。在这一篇博文里有一些需要前一篇铺垫的东西,建议没有看过前一篇博文的同学先去看一下前一篇:Android中的Service:默默的奉献者 (1) 。但是在前一篇博文中也有一些遗漏的东西——主要是关于bindService()这一块的转载 2017-03-20 15:00:04 · 273 阅读 · 0 评论 -
Android:学习AIDL,这一篇文章就够了(上)
前言在决定用这个标题之前甚是忐忑,主要是担心自己对AIDL的理解不够深入,到时候大家看了之后说——你这是什么玩意儿,就这么点东西就敢说够了?简直是坐井观天不知所谓——那样就很尴尬了。不过又转念一想,我辈年轻人自当有一种一往无前的锐气,标题大气一点岂不更好?并且大家都是文明人,总归更多的是理解与补充而不是侮辱与谩骂?所以最终还是厚颜用了这么一个不怎么有耻的标题。好了,接下来进入正题,谈谈我对转载 2017-03-20 15:03:15 · 205 阅读 · 0 评论 -
Android:学习AIDL,这一篇文章就够了(下)
前言上一篇博文介绍了关于AIDL是什么,为什么我们需要AIDL,AIDL的语法以及如何使用AIDL等方面的知识,这一篇博文将顺着上一篇的思路往下走,接着介绍关于AIDL的一些更加深入的知识。强烈建议大家在看这篇博文之前先看一下上一篇博文:Android:学习AIDL,这一篇文章就够了(上)注:文中所有代码均源自上一篇博文中的例子。 另:在看这篇博文之前,建议先将上一篇博文中的代码下载下转载 2017-03-20 15:08:00 · 241 阅读 · 0 评论 -
Android 基于Message的进程间通信 Messenger完全解析
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47017485;本文出自:【张鸿洋的博客】一、概述说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代码的编写。如果你对这个过程不熟悉,可以查看Android aidl Binder框转载 2017-03-20 15:20:18 · 1128 阅读 · 0 评论 -
android系统移植之按键驱动篇
平台:MX53_QSB开发板MX53_QSB开发板上一起有四个按键,分别为RESET,POWER,USER1,USER2。其中RESET为纯硬件复位按键,无须软件控制。POWER,USER1,USER2三个按键均需要程序控制。默认BSP包中将三个按钮全设置为上升和下降沿触发,当系统起来后,按下POWER键,进入睡眠状态,这时再按下POWER键唤醒时,系统系统被唤醒,但是一旦手松下,又触发了转载 2017-03-21 17:30:29 · 2318 阅读 · 0 评论 -
Android输入输出机制之来龙去脉之前生后世
先讲一下基本一般的输入处理方式的知识。一般的输入输出采用生产者,消费者模式,并构造队列进行处理,如下图 这种输入模型在android的系统中很多地方采用,先从最底层说起: 为了由于触屏事件频率很高,android设计者讲一个循环线程,拆分为两级循环,并做了个队列来进行缓冲。InputDispatcherThread和InputReaderThread转载 2017-03-22 08:30:18 · 406 阅读 · 0 评论 -
Android 4.0 事件输入(Event Input)系统
1. TouchScreen功能在Android4.0下不工作 原来在Android2.3.5下能正常工作的TouchScreen功能,移植到Android 4.0就不能正常工作了。凭直觉,Android4.0肯定有鬼。真是不看不知道,一看吓一跳。在Android 4.0中,Event Input地位提高了,你看看,在Adroid2.3.5中,它在frameworks/base/l转载 2017-03-22 08:55:38 · 476 阅读 · 0 评论 -
Android Framework中的线程Thread及它的threadLoop方法
当初跟踪Camera的代码中的时候一直追到了HAL层,而在Framework中的代码看见了许许多多的Thread。它们普遍的特点就是有一个threadLoop方法。按照字面的意思应该是这个线程能够循环处理数据。对应我想到到了Java上层中的HandlerThread,这个估计也差不多,但当时心里总有一个疙瘩,想弄清楚它为什么能够循环,还有它到底是怎么循环起来的?Android中java世界的T转载 2017-03-22 09:09:13 · 996 阅读 · 0 评论 -
InterviewQuestion
InterviewQuestion工作原因,不再更新。整理的常见的问题 http://chenfuduo.cn整理来自这里水平有限,有错误请提出来。Android常见的问题标签(空格分隔): 移动开发常见算法问题的 Java 实现资料可见算法介绍可见算法是很多公司面试必须,国内 BAT 基本面试中都会有,尤以百度为盛。常见设计转载 2017-03-22 10:16:04 · 803 阅读 · 0 评论 -
Android消息机制2-Handler(Native层)
本文基于Android 6.0的源代码,来分析native层的消息处理机制相关源码framework/base/core/java/andorid/os/MessageQueue.javaframework/base/core/jni/android_os_MessageQueue.cppframework/base/core/java/andorid/os/Looper.ja转载 2017-02-06 16:49:19 · 3309 阅读 · 0 评论 -
Android消息机制1-Handler(Java层)
本文基于Android 6.0的源代码,来分析Java层的handler消息处理机制相关源码framework/base/core/java/andorid/os/Handler.javaframework/base/core/java/andorid/os/Looper.javaframework/base/core/java/andorid/os/Message.java转载 2017-02-06 16:35:42 · 23907 阅读 · 0 评论 -
主线程中的Looper.loop()一直无限循环为什么不会造成ANR?
引子:正如我们所知,在android中如果主线程中进行耗时操作会引发ANR(Application Not Responding)异常。造成ANR的原因一般有两种:当前的事件没有机会得到处理(即主线程正在处理前一个事件,没有及时的完成或者looper被某种原因阻塞住了)当前的事件正在处理,但没有及时完成为了避免ANR异常,android使用了Handler消息处理机制。转载 2017-02-06 15:53:19 · 9703 阅读 · 0 评论 -
Android N App分屏模式完全解析(上)
上手了Android N Preview,第一个不能错过的新特性就是App分屏的支持。Android7.0原生系统就可以支持两个App横屏并排或者竖屏上下摆放了。第二个新特性就是在Android TV上,原生系统也可以支持App实现画中画,用户可以一边看视频一边操作其他的应用。其实早先在国内部分厂商以及鹅厂的微信App就已经支持在大尺寸手机上进行分屏浏览。也有一些视频播放器,如MoboPlay转载 2016-12-02 15:49:14 · 507 阅读 · 0 评论 -
Android N App分屏模式完全解析(下)
在上篇中,介绍了什么是App分屏模式,以及如何设置我们的App来进入分屏模式。这次我们看一下,作为开发者,我们应该如何让自己的App进入分屏模式,当App进入分屏模式时,我们注意哪些问题。简单地说,我认为除了保证分屏时App功能、性能正常以外,我们需要重点学习 如何在分屏模式下打开新的Activity 以及 如何实现跨App/Activity的拖拽功能。用分屏模式运行你的AppAn转载 2016-12-02 15:52:25 · 1002 阅读 · 0 评论 -
Android 7.0中的多窗口实现解析
在以往的Android系统上,所有Activity都是全屏的,如果不设置透明效果,一次只能看到一个Activity界面。但是从Android N(7.0)版本开始,系统支持了多窗口功能。在有了多窗口支持之后,用户可以同时打开和看到多个应用的界面。并且系统还支持在多个应用之间进行拖拽。在大屏幕设备上,这一功能非常实用。本文将详细讲解Android系统中多窗口功能的实现。多窗口功能介绍转载 2016-12-02 16:01:44 · 3886 阅读 · 0 评论 -
Android7(N)开发者应该知道的一切(最全)
Android N for Developers转载请注明: http://blog.csdn.net/wen_demo/article/details/51943340 1.多窗口支持Android N 添加了对同时显示多个应用窗口的支持。 在手持设备上,两个应用可以在“分屏”模式中左右并排或上下并排显示。 在电视设备上,应用可以使用“画中画”模式,在用户与另一个转载 2016-12-02 16:05:43 · 740 阅读 · 0 评论 -
Android插件化探索(一)类加载器DexClassLoader
本文部分内容参考自《Android内核剖析》基本概念在Java环境中,有个概念叫做“类加载器”(ClassLoader),其作用是动态装载Class文件。标准的JavaSDK中有一个ClassLoader类,借助它可以装载想要的Class文件,每个ClassLoader对象在初始化时必须指定Class文件的路径没有使用过ClassLoader的读者可能会问:“在过去的程序开发中转载 2016-12-02 17:23:54 · 487 阅读 · 0 评论 -
Android7.0 Ninja编译原理
#############################################本文为极度寒冰原创,转载请注明出处#############################################引言 使在Android N的系统上,初次使用了Ninja的编译系统。对于Ninja,最初的印象是用在了Chromium open source code转载 2016-12-12 08:39:26 · 1873 阅读 · 0 评论 -
编译android源码时,jack server 出现out of memory error 错误的解决方法
编译android源码时,jack server 出现out of memory error 错误的解决方法:问题现象如下:问题的解决方案如下,共两步:Step1:修改jack server相关源码Step2:重启Jack server./prebuilts/sdk/tools/jack-admin stop-server用以上命令关闭即可,重新ma转载 2016-12-06 21:14:34 · 2691 阅读 · 0 评论 -
android N编译
转载自:http://blog.csdn.net/luvzhan/article/details/53282968?utm_source=itdadao&utm_medium=referralandroid N 编译环境配置需要使用openjdk 8,所以,有两种方法:方法一: sudo apt-get update; sudo apt-get install openjd转载 2016-12-06 21:17:56 · 2007 阅读 · 1 评论 -
关于Android N,Eclipse跟Studio中的File Explorer无法显示文件列表
插入Android N真机后,发现Eclipse跟Studio 中 File Explorer都无法显示文件列表,但插入Android N以前的真机正常。上网搜到说这是由于ddmlib.jar过旧的缘故,以下为google原述:Put the attachment into libs of com.android.ide.eclipse.ddms_###.jarAnd de原创 2016-12-07 19:15:32 · 1496 阅读 · 0 评论 -
xxx.so has text relocations. This is wasting memory and is a security risk. Please fix
最近使用jni编译so文件,发现在Android M中将之前一直视为warning的text relocation升级为了error ,直接导致system.load so文件的时候失败。翻了网上各种资料,关于text relocation的解决办法总结了一下:这个错误的主要原因是加载.so文件的代码段时,代码段引用的数据对象需要重定位, 重定位会修改代码段的内容,这就造成每个使用转载 2016-12-08 21:04:21 · 1018 阅读 · 0 评论 -
Android 6.0下出错: UnsatisfiedLinkError: dlopen failed . text relocations
Android 6.0下报错: UnsatisfiedLinkError: dlopen failed ... text relocations首先贴一下这个问题的官方答复:https://code.google.com/p/Android-developer-preview/issues/detail?id=3028 先介绍一下这个问题的背景 (没兴趣看的,转载 2016-12-08 21:11:19 · 552 阅读 · 0 评论 -
Android Linker学习笔记
0x00 知识预备Linker是Android系统动态库so的加载器/链接器,要想轻松地理解Android linker的运行机制,我们需要先熟悉ELF的文件结构,再了解ELF文件的装入/启动,最后学习Linker的加载和启动原理。鉴于ELF文件结构网上有很多资料,这里就不做累述了。0x01 so的加载和启动我们知道如果一个APP需要使用某一共享库so的话,它会在JAVA层声明代码转载 2016-12-08 21:32:15 · 749 阅读 · 0 评论 -
图解Android - Android GUI 系统 (5) - Android的Event Input System
Android的用户输入处理Android的用户输入系统获取用户按键(或模拟按键)输入,分发给特定的模块(Framework或应用程序)进行处理,它涉及到以下一些模块:Input Reader: 负责从硬件获取输入,转换成事件(Event), 并分发给Input Dispatcher.Input Dispatcher: 将Input Reader传送过来的Events 分发给合适的窗口转载 2017-02-06 15:40:47 · 341 阅读 · 0 评论 -
Android平台实现开机调试system_process
1 首先要理清一下什么是system_process1.1 system_process是我们在DDMS可以看到的名称。设置的地方在ActivityThread.java: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 private void attach(boolean转载 2017-03-16 15:46:21 · 775 阅读 · 0 评论