android框架

《深入理解Android》学习-View体系

旧巷老猫 提交于 2020-03-01 20:09:29
《深入理解Android》学习-View体系(一) SurfaceFlinger和WMS支撑起了Android的GUI的底层,但是和终端用户直接交互的还是View系统,本节将对View系统进行介绍,主要描述view的管理以及绘制过程。 1.1 View框架 下图是View框架的核心类图。 先介绍下上面图中各个类的关系。 Activity和Window Activity支持UI显示,但是并不是直接进行View树的管理,Activity中定义了一个Window类型的对象mWindow。而Window是个基类,系统根据不同的产品来产生不同的子类。具体是在调用Activity.attach中调用PolicyManager.makeNewWindow来决定的,目前默认生成的都是PhoneWindow。 Window和WindowManagerImpl Window具有两层含义,一方面它面向Activity,承担着显示UI的作用;另一方面它还要同WindowManagerService通信。当然,这个也不是直接在Window中实现的,不然会造成功能混乱,这个功能由WindowManager来实现,而Window中包含了一个WindowManager的对象mWindowManager,WindowManager是一个接口,其真正的实现是在WindowManagerImpl当中。

[Android] AsyncTask详解

吃可爱长大的小学妹 提交于 2020-03-01 10:42:51
本篇随笔将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信。 一、Android当中的多线程 在Android当中,当一个应用程序的组件启动的时候,并且没有其他的应用程序组件在运行时,Android系统就会为该应用程序组件开辟一个新 的线程来执行。默认的情况下,在一个相同Android应用程序当中,其里面的组件都是运行在同一个线程里面的,这个线程我们称之为Main线程。当我们 通过某个组件来启动另一个组件的时候,这个时候默认都是在同一个线程当中完成的。当然,我们可以自己来管理我们的Android应用的线程,我们可以根据 我们自己的需要来给应用程序创建额外的线程。 二、Main Thread 和 Worker Thread 在Android当中,通常将线程分为两种,一种叫做Main Thread,除了Main Thread之外的线程都可称为Worker Thread。 当一个应用程序运行的时候,Android操作系统就会给该应用程序启动一个线程,这个线程就是我们的Main Thread,这个线程非常的重要,它主要用来加载我们的UI界面,完成系统和我们用户之间的交互,并将交互后的结果又展示给我们用户,所以Main Thread又被称为UI Thread。 Android系统默认不会给我们的应用程序组件创建一个额外的线程

国内优秀Android学习资源

老子叫甜甜 提交于 2020-03-01 10:31:32
技术博客 应用开发 博主 博客 备注 任玉刚 CSDN博客 深入Android应用开发,深度与广度兼顾 郭霖 CSDN博客 内容实用,行文流畅,高人气博主 夏安明 CSDN博客 张鸿洋 CSDN博客 自定义View系列非常有价值,质量与产量都很高 爱哥 CSDN博客 自定义View系列非常有价值,内容详细逼格高 傲慢的上校 CSDN博客 自定义View系列非常有价值,内容详细逼格高 Trinea 个人博客 性能优化,开源项目等 胡凯 个人博客 性能优化等 谦虚的天下 博客园 性能优化等 兰亭风雨 CSDN博客 Java源码分析等 Mr.Simple CSDN博客 开源框架系列、OOP等 源码分析 博主 博客 备注 罗升阳 CSDN博客 源码分析 邓凡平 博客园 源码分析 开源达人 作者 备注 square项目组 OkHttp, Retrofit, Otto等很多优秀的开源项目,业界良心! facebook项目组 fresco,react native等很多优秀的开源项目,业界良心之二! Jake Wharton NineOldAnimatoins, ButterKnife,ViewIndicator等优秀作品,Square员工 Trinea 优秀开源项目集锦,优秀开源库架构分析等 singwhatiwanna DL (插件化)

Android热修复实践应用--AndFix

社会主义新天地 提交于 2020-02-29 08:50:43
一直关注App的热修复的技术发展,之前做的应用也没用使用到什么热修复开源框架。在App的热修复框架没有流行之前,做的应用上线后发现一个小小的Bug,就要马上发一个新的版本。我亲身经历过一周发两个版本,真的折腾用户的节奏~~所以,要开始考虑引入热修复。下面记录使用开源框架阿里巴巴的AndFix过程。 实现的原理 这里说的不是热修复怎么实现修bug的原理,这里说的是怎么使用AndFix。如果你想了解更多的andFix实现原理,你可以参考下面的文章: https://github.com/alibaba/AndFix (AndFix的官网) http://blog.csdn.net/lmj623565791/article/details/49883661 (Android大神鸿洋的Bolg文章) 应用启动的时候,在 onCreate() 方法中获取友盟的在线参数来判断当前的应用版本是否有补丁需要下载,有则通过ThinDonloadManager来下载到SD下并且通过使用AndFix来加载到应用中。 使用极光推送消息到该应用的版本需要下载补丁,如果应用收到了消息后,应用判断当前的版本是否需要下载补丁。如果应用没有收到消息的通知,则下次启动App的时候,获取友盟在线参数来判断是否需要下载补丁。 步骤 在gradle文件中增加相应的依赖

Android 多线程----AsyncTask异步任务详解

夙愿已清 提交于 2020-02-29 08:48:04
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号: http://www.cnblogs.com/smyhvae/ 文章来源: http://www.cnblogs.com/smyhvae/p/3866570.html 【正文】 本文将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信。 一、Android当中的多线程: 在Android当中,当一个应用程序的组件启动的时候,并且没有其他的应用程序组件在运行时,Android系统就会为该应用程序组件开辟一个新的线程来执行。默认的情况下,在一个相同Android应用程序当中,里面的组件都是运行在同一个线程里的,这个线程称之为Main线程。当我们通过某个组件来启动另一个组件的时候,这个时候默认都是在同一个线程当中完成的。当然,我们可以自己来管理我们的Android应用的线程,我们可以根据我们自己的需要来给应用程序创建额外的线程。 二、Main Thread 和 Worker Thread: 在Android当中,通常将线程分为两种,一种叫做Main Thread,除了Main Thread之外的线程都可称为Worker Thread。 当一个应用程序运行的时候,Android操作系统就会给该应用程序启动一个线程,这个线程就是我们的Main Thread,这个线程非常重要

Android Studio中如何提升Gradle Building的速度?

末鹿安然 提交于 2020-02-29 01:37:48
比起两三年前,现在开发Android应用已经可以很顺手了,无论是IDE还是开发框架、第三方库,都比较成熟了。但是呢,使用 Android Studio开发 时,免不了在调试时,看着gradle building一直在Loading,对于一般的项目也是需要一杯咖啡的时间了,特别是只想测下一丁点的小问题时,也要等这么长时间,实在是没有耐心。那么,经过一轮的Google与实践探索,终于得一大法,仿佛张无忌在昆仑洞下练成了九阳真经。   得此大法,可解决Android Studio Gradle building慢的问题了!将原来的编译时间从五到十分钟提升到30秒左右!    提速一:本地化引用第三方aar或jar包   在开发时,一般会引用到第三方库,例如,在项目中引用了 fabprogresscircle库,那么一般在项目的app目录下的 build.gradle 文件里会有这么一条记录:    compile 'com.github.jorgecastilloprz:fabprogresscircle:1.01 @aar '   Gradle在第一次Building时,会将引用的第三方库包下载到缓存里。下载到缓存里的文件应该是 fabprogresscircle-1.01.aar 。注意:如果build.gradle引用时没有 @aar 的话,那一般下载到缓存里的是 .jar 文件

AirtestIDE 游戏自动化(unity3d跨 Windows、Mac、IOS、Android)

我只是一个虾纸丫 提交于 2020-02-29 00:25:30
简介 参考:https://testerhome.com/topics/12391 AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App。 自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程 支持基于图像识别的 Airtest 框架,适用于所有Android和Windows游戏 支持基于UI控件搜索的 Poco 框架,适用于Unity3d,Cocos2d与Android App 能够运行在Windows和MacOS上 网易内部已成功应用在数十个项目上,利用 手机集群 进行大规模自动化测试 访问 官网 通过视频查看更多特性。 通过本教程,你将学会如何上手自动化测试(或者写点脚本来自动玩游戏)。相信我,这个过程会非常愉快~ 安装 目前AirtestIDE提供了Windows和Mac两个版本的客户端,请从 官网 下载,解压即用。 连接设备 AirtestIDE目前支持测试Android和Windows上的应用,iOS支持正在开发中。 连接Android手机 通过ADB连接你的电脑和Android手机,即可开始调试Android应用。 ADB 是Google官方提供的Android调试工具。AirtestIDE依赖ADB与安卓设备进行通信。 打开AirtestIDE,按照以下步骤进行连接: 打开手机 设置-开发者选项-USB调试 开关,参考 安卓官方文档

Android--百度地图开发(二)

亡梦爱人 提交于 2020-02-28 22:38:10
显示百度地图 百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据: 第一步:创建并配置工程(具体方法参见工程配置部分的介绍); 第二步:在AndroidManifest中添加开发密钥、所需权限等信息; (1)在application中添加开发密钥 <application> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key" /> </application> 2)添加所需权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission

android:onClick XML属性与setOnClickListener有什么不同?

Deadly 提交于 2020-02-28 08:59:39
根据我的读物,您可以通过两种方式将 onClick 处理程序分配给按钮。 使用 android:onClick XML属性,在其中您仅使用带有签名 void name(View v) 的公共方法的名称,或者使用 setOnClickListener 方法,在其中传递实现 OnClickListener 接口的对象。 后者通常需要一个我个人不喜欢的匿名类(个人喜好)或定义一个实现 OnClickListener 的内部类。 通过使用XML属性,您只需要定义一个方法而不是一个类,因此我想知道是否可以通过代码而不是在XML布局中完成相同的操作。 #1楼 支持Ruivo的答案,是的,您必须将方法声明为“ public”才能在Android的XML onclick中使用-我正在开发一个应用程序,其目标是API级别8(minSdk ...)到16级(targetSdk ...)。 我将我的方法声明为私有方法,并且导致错误,只是将其声明为公共方法很好。 #2楼 请注意,如果要使用onClick XML功能,则相应的方法应具有一个参数,其类型应与XML对象匹配。 例如,一个 按钮 将通过其名称字符串链接到您的方法: android:onClick="MyFancyMethod" 但方法声明应显示: ...MyFancyMethod(View v) {... 如果您尝试将此功能添加到 菜单项

Android学习路线图

北城余情 提交于 2020-02-28 08:22:32
文章转载自「开发者圆桌」一个关于开发者入门、进阶、踩坑的微信公众号 该学习路线图包含以下三个部分,可以通过百度云盘下载观看对应的视频 链接: http://pan.baidu.com/s/1bo3AH4b 密码: 7s4w 好东西岂能独享,欢迎分享到你的朋友圈,推荐给更多的朋友。欢迎关注公众号,订阅视频更新,好视频岂容错过。 step01初级教程 Android 基础视频教程 本套视频是2015年年底推出更新的最新Android基础视频,知识点与时俱进,讲解独到,配备视频所涉及源码 8天快速掌握Android-视频教程 本套android教程共有67集,是传智播客3G-Android就业班前8天的的课程量。 Android4.0开发视频教程 本套视频讲解的所有知识点全程以企业级开发实例驱动,绝不停留在demo级别的讲解。 step02中级教程 Android手机卫士 本套视频授课时间长达13天,涉及知识面广泛,糅合了Android项目开发所需的各个领域,如MVC框架设计。 20天精通Android开发2016版 介绍xml和json格式数据的语法和解析。 step03高级教程 【毕设项目】android电子市场 安卓 电子市场是国内的安卓软件和游戏下载平台,提供"手机客户端"、"平板电脑客户端"和"网页端"等多种下载渠道。 【毕设项目】手机影音制作 手机影音--