android框架

Android App 反应卡顿解决方案

ⅰ亾dé卋堺 提交于 2019-12-02 13:49:23
Android App 反应卡顿,从技术上将就是UI 渲染慢。 UI渲染 是从您的应用程序生成一个框架并将其显示在屏幕上的行为。 为了确保用户与您的应用程序的交互顺利,您的应用程序应该在 16ms 内渲染帧数达到 每秒60帧(为什么60fps?) 。 如果您的应用程序因UI渲染速度缓慢而受到影响,那么系统将被迫跳过帧,用户将感觉到您的应用程序中出现卡顿。 我们把这个叫做 jank 。 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 1.UI 渲染简介 2.识别Jank 3.Fix Jank 4.引起Jank 通用问题举例 欢迎关注微信公众号:程序员Android 公众号ID:ProgramAndroid 获取更多信息 微信公众号:ProgramAndroid 我们不是牛逼的程序员,我们只是程序开发中的垫脚石。 我们不发送红包,我们只是红包的搬运工。 1.UI 渲染简介 为了帮助您提高应用程序质量, Android 会自动监视您的应用程序是否有空,并在 Android 生命危险仪表板中显示信息。 有关如何收集数据的信息,请参阅 Play Console 文档。 如果您的应用程序出现问题,本页提供诊断和解决问题的指导。 Android 生命危险仪表板和 Android 系统会跟踪使用 UI Toolkit 的应用程序的渲染时间统计信息

Android中仿QQ侧滑删除功能的实现

妖精的绣舞 提交于 2019-12-02 12:49:45
背景 参考 框架引入 我的Demo说明 主界面布局和代码 适配器代码以及itemView的布局 效果图示 关键说明 背景 侧滑删除的功能和效果很棒,而且用户体验感会很好,更加效率点吧!我体验了好多的app,感觉删除的功能还是QQ的侧滑删除最适合我的习惯。查找了github上的开源优秀项目,找了一个使用起来比较简单的框架,下面来实现。 参考 Android 仿QQ侧滑删除—一个满足ListView、RecyclerView以及其他View通用的侧滑删除 该链接可以让你熟悉自定义VIewGroup的一些基本步骤,然后大体的讲了一些侧滑菜单实现基本原理,个人觉得是可以让人学到知识点的好文 SwipeDelMenuLayout 该链接就是我使用的框架,点开可以阅读该框架的一些基本使用方法。当然,有时间可以去好好的研究一下源码,肯定可以学习很多的好东西。 框架引入 想要使用这个框架我们需要在项目中引用框架。 在项目根build.gradle文件中增加JitPack仓库依赖 allprojects { repositories { ... maven { url "https://jitpack.io" } } } 添加依赖 dependencies { ... implementation 'com.github.mcxtzhang:SwipeDelMenuLayout:V1.3.0' }

【转载】Android 面试题(1)(转)

女生的网名这么多〃 提交于 2019-12-02 12:01:04
真他妈的全面呢。 1. 请描述下Activity的生命周期。2. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?3. 如何将一个Activity设置成窗口的样式。(Edited by Sodino)4. 如何退出Activity?如何安全退出已调用多个Activity的Application?5. 请介绍下Android中常用的五种布局。6. 请介绍下Android的数据存储方式。(Edited by Sodino)7. 请介绍下ContentProvider是如何实现数据共享的。(Edited by Sodino)8. 如何启用Service,如何停用Service。(Edited by Sodino)9. 注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。10. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。11. AIDL的全称是什么?如何工作?能处理哪些类型的数据?12. 请解释下Android程序运行时权限与文件系统权限的区别。(Edited by Sodino)13. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。14. 有一个一维整型数组int[]data保存的是一张宽为width,高为height的图片像素值信息

Android:HttpClient研究

守給你的承諾、 提交于 2019-12-02 10:13:05
HttpClient_4 用法 由HttpClient_3 升级到 HttpClient_4 必看 摘要: HttpClient程序包是一个实现了 HTTP 协议的客户端编程工具包,要想熟练的掌握它,必须熟悉 HTTP协议。一个最简单的调用如下:import java.io.IOException;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.clie 阅读全文 HttpClient 教程 (六) 摘要: 第六章 高级主题6.1 自定义客户端连接在特定条件下,也许需要来定制HTTP报文通过线路传递,越过了可能使用的HTTP参数来处理非标准不兼容行为的方式。比如,对于Web 爬虫,它可能需要强制HttpClient接受格式错误的响应头部信息,来抢救报文的内容。通常插入一个自定义的报文解析器的过程或定制连接实现需要几个 步骤:提供一个自定义LineParser/LineFormatter接口实现。如果需要,实现报文解析/格式化逻辑

Android MVC 架构详解

天涯浪子 提交于 2019-12-02 08:09:09
一、前言 由于 MVP、MVVM 的兴起,MVC 在 android 中的应用变得越来越少了,但 MVC 是基础,理解好 MVC 才能更好的理解MVP,MVVM。因为后两种都是基于 MVC 发展而来的。 二、 我们从网上搜索 MVC 相关资料时,如果你多看几篇文章的话可能会发现,好像他们介绍的设计图都不太一样,这里罗列了大部分的设计图: 到底上面列出的设计图哪个才是对的。其实都是对的。为什么这么说呢,这得从 MVC 的发展说起。 MVC 框架模式最早由 Trygve Reenskaug 于 1978 年在 Smalltalk-80 系统上首次提出。经过了这么多年的发展,当然会演变出不同的版本,但核心没变依旧还是三层模型 Model-View-Control。 箭头 → 代表的是一种事件流向,并不一定要持有对方,比如上图中 model → view 的事件流向,view 可以通过注册监听器的形式得到 model 发来的事件。在设计中 model view controller 之间如果要通讯,尽量设计成不直接持有,这样方便复用。也符合mvc的设计初衷 在 Android 中三者对应的关系如下: 视图层(View) 对应于xml布局文件和java代码动态view部分。 控制层(Controller) MVC中Android的控制层是由Activity来承担的

最受欢迎的5个Android ORM框架

社会主义新天地 提交于 2019-12-02 06:37:34
在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择)。 对于第一种方式,即本地数据存储,如嵌入式 SQLite ,你可以选择直接使用SQL语句、Content Provider 或 ORM(对象关系数据映射)。 对于 Android 应用的开发,主要是使用Java语言,所以适用于Java语言的一些ORM,也能移植于 Android 平台上。 下面是5个可用ORM的总体介绍: 1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM。支持JDBC连接,Spring以及Android平台。语法中广泛使用了注解(Annotation)。 官方网站:http://ormlite.com/sqlite_java_android_orm.shtml 2. SugarORM SugarORM 是 Android 平台专用ORM。提供简单易学的APIs。可以很容易的处理1对1和1对多的关系型数据,并通过3个函数save(), delete() 和 find() (或者 findById()) 来简化CRUD基本操作。 要启用SugarORM,需要在你的应用程序 AndroidManifest.xml 配置中添加如下meta

Android手机APP测试之环境搭建

浪子不回头ぞ 提交于 2019-12-02 06:31:50
Android 手机APP测试环境搭建 一、Android SDK 概念: SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 Android SDK 指的是Android专属的软件开发工具包。 adb :adb的全称为Android Debug Bridge,就是起到调试桥的作用。借助adb工具,我们可以管理设备或手机模拟器的状态,adb命令存放在SDK的TOOLS文件夹下面。 二、Android SDK 的安装与环境变量配置: 1、下载Android SDK,解压后即可(全英文路径) 下载地址: http://tools.android-studio.org/index.php/sdk 2、新建一个环境变量,变量名:ANDROID_HOME,变量值:c:\sdk(以你安装目录为准,确认 里面有tools和add-ons等多个文件夹),点击确认。 3、在系统变量path中添加 ;%ANDROID_HOME%\platform-tools; %ANDROID_HOME%\tools 4、Android SDK配置完成,接下来验证配置是否成功。 5、点击运行——输入cmd——回车——输入adb——回车,出现英文命令提示即正确 三、下载天天模拟器 (作为模拟手机

Android开源炫酷动画框架

≯℡__Kan透↙ 提交于 2019-12-02 06:18:17
有空可以研究一下: 1.Side-Menu.Android 分类侧滑菜单, Yalantis 出品。 项目地址: https://github.com/Yalantis/Side-Menu.Android 2.Context-Menu.Android 可以方便快速集成漂亮带有动画效果的上下文菜单, Yalantis 出品。 项目地址: https://github.com/Yalantis/Context-Menu.Android 3.Pull-to-Refresh.Rentals-Android 提供一个简单可以自定义的下拉刷新实现, Yalantis 出品。 项目地址: https://github.com/Yalantis/Pull-to-Refresh.Rentals-Android 4.Titanic 可以显示水位上升下降的TextView 项目地址: https://github.com/RomainPiel/Titanic 5.AndroidSwipeLayout 滑动Layout,支持单个View,ListView,GridView 项目地址: https://github.com/daimajia/AndroidSwipeLayout Demo地址: Download Demo 6.Android Typeface Helper 可以帮你轻松实现自定义字体的库

Android第三十五天

六眼飞鱼酱① 提交于 2019-12-02 05:21:09
1、怎样在MainActivity中为Button的点击事件绑定一个监听器?(四种方式) <1>a.查找控件 //查找控件按钮 private Button button1; button1 = (Button) findViewById(R.id.button1); b.创建一个类,实现OnClickListener接口,重写里面的OnClick()方法 //OnClickListener()是按钮的监听器类对象,当按钮被点击的时候。 class MyListener implements OnClickListener{ //当按钮被点击的时候,会自动调用的方法 @Override //v:事件源。被点击的那个控件 public void OnClick(View v){ //这里写被点击之后要执行的任务 button1.setText("点击之后改变的文本内容"+new Date()); } } c.用查找到的控件去绑定监听器对象。(按钮对象.setOnClickListener(监听器对象)) MyListener listener =new MyListener(); //绑定按钮的被点击的监听器 button1.setOnClickListener(listener); <2>a.查找控件 private Button button2; button2=(Button)

开源Android容器化框架Atlas开发者指南

心已入冬 提交于 2019-12-02 03:25:49
Atlas是古希腊神话中的天神,是波士顿动力公司的机器人,借助搜索引擎,得以发现这个名词背后许许多多的含义。在手机淘宝,Atlas是一个扎根于Android客户端的一个组件化容器框架,相比神话中用手和头支撑起苍天的泰坦神族,Atlas在手淘默默无闻地承载着手淘上丰富业务的运行,伴随着数不清的功能在... Android方向的大牛们都已经深入了解了插件化所带来的巨大的便利,一直也没时间去搞一套详细的记忆,在这里,仅以源码分析的形式进行插件化框架的巩固,文集中会具体分析源码,框架结构,运行原理等方面,除了加深记忆,也让我们一起进步。 随着手机淘宝业务的快速增长,协作研发团队的不断扩大,技术也面临着更多挑战:一方面代码量快速上升导致方法过多,限制打包的正常输出;另一个方面各业务线的开发和集成都需要到一个 apk上,业务间相互耦合严重,集成开发工作效率低下,这个大背景下,急需要做一次从构建,集成,交付的技术改造, 于是Atlas作为手淘运行的容器诞生了,它灵活的解决了各个业务开发期间的相互独立解耦,而且提供了各个模块线上独立动态能力。 Atlas是什么? Atlas是一个Android客户端容器框架,主要提供了组件化、动态性、解耦化的支持。支持在编码期、Apk运行期以及后续运维修复期的各种问题。 在工程期,实现工程独立开发,调试功能,工程模块的独立。 在运行期间,实现完整的组件生命周期映射