博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Android

摘要:Android Lint工具是Android Studio 自带的静态代码工模具,Android Lint是专门针对Android 定制的检查规则,因此可以检查出很多Android特有的代码缺陷。建议在开发过程中,经常性地检查编写的代码是否存在问题,在每次测试功能模块前运行Lint是一个不错的时机。 阅读全文

posted @ 2017-08-05 15:56 行歌 阅读(439) 评论(0) 推荐(0)

摘要:前言: 在移动端开发中,我们必须正确处理好主线程和子线程之间的关系,耗时操作必须在子线程中完成,避免阻塞主线程,导致ANR。异步处理技术是提高引用性能,解决主线程和子线程之间通信问题的关键。 通常在如下两种情况下会弹出ANR对话框: 5s内无法响应用户输入事件(例如键盘输入, 触摸屏幕等). Bro 阅读全文

posted @ 2017-08-03 21:11 行歌 阅读(1927) 评论(1) 推荐(1)

摘要:现在App的UI设计中Drawerlayout+NavigationView是一个比较常用的设计了,而以前我一般只是在Navigation中的menu(即下部的item中)添加事件监听,而今天碰到一个需要是要在header中增加事件监听。 需求如下:点击图片,在底部弹出一个弹出窗口。 侧边导航栏布局 阅读全文

posted @ 2017-07-07 11:29 行歌 阅读(1893) 评论(1) 推荐(1)

摘要:一、引言 AIDL是android内部进程通信接口的描述语言,是实现跨进程方法调用的一大利器,其中Binder和Messenger的实现机制都是AIDL。 二、使用下面结合示例说明其使用过程: 本次示例的基本要求是完成一个图书馆图书入库和在库图书列表查询的demo, 1、为了完成这个功能,我们首先需 阅读全文

posted @ 2017-07-05 10:03 行歌 阅读(579) 评论(0) 推荐(0)

摘要:1.简介 Messenger,顾名思义即为信使,通过它可以在不同进程中传递Message对象,通过在Message中放入我们需要的入局,就可以轻松实现数据的跨进程传递了。Messenger是一种轻量级的IPC方案,其底层实现是AIDL。 Messenger的使用方法很简单,它对AIDL进程了封装,并 阅读全文

posted @ 2017-07-02 10:35 行歌 阅读(682) 评论(0) 推荐(0)

摘要:在Android开发中,Binder主要用于Service中,包括AIDL和Messenger,其中Messenger的底层实现就是AIDL,所以我们这里通过AIDL来分析一下Binder的工作机制。 一、在Android Studio中建立AIDL 首先,我们需要建立一个AIDL 1.在建立了对应 阅读全文

posted @ 2017-07-01 21:25 行歌 阅读(1093) 评论(0) 推荐(1)

摘要:一、引言 数据的序列化在Android开发中占据着重要的地位,无论是在进程间通信、本地数据存储又或者是网络数据传输都离不开序列化的支持。而针对不同场景选择合适的序列化方案对于应用的性能有着极大的影响。 从广义上讲,数据序列化就是将数据结构或者是对象转换成我们可以存储或者传输的数据格式的一个过程,在序 阅读全文

posted @ 2017-06-24 15:51 行歌 阅读(3667) 评论(0) 推荐(0)

摘要:一、引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比如说在一些常用的第三方库中也随处可见其踪迹,比如说一些常用的网络请求库如OkHttp或者是retro 阅读全文

posted @ 2017-06-23 21:58 行歌 阅读(1093) 评论(0) 推荐(0)

摘要:对于一个App的UI而言,在流畅性上的改进目标其实就是降低屏幕绘制的延迟,创建流畅和稳定的帧率以避免卡顿。 在理想情况下,全部的测量、布局和绘制的时间最好在16ms以内,这样才能保证屏幕运行的顺畅性。而如何对屏幕渲染和UI性能进行评估和分析呢,在Android SDK中集成了一些工具用来策略APP的 阅读全文

posted @ 2017-06-20 10:26 行歌 阅读(538) 评论(0) 推荐(0)

摘要:一、引入: Android提供了View来进行绘图处理,在大部分情况下,View都能满足绘图需求。大家都知道View是通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新的间隔时间为16ms。如果在16ms内View完成了你所需要执行的所有操作,那么用户在视觉上,就不会 阅读全文

posted @ 2017-06-09 21:43 行歌 阅读(935) 评论(1) 推荐(0)

摘要:这几天在上海出差,忙里偷闲学习了一下Apk的反编译工具的基本使用。下面就简单介绍一下如何将我们从网上下载的Apk文件进行反编译得到我们想要获得的资源文件和源码。 一、Apk文件组成 Android的应用程序APK文件说到底也是一个压缩文件,那么可以通过解压缩得打里面的文件内容,不过很显然,当你去解压 阅读全文

posted @ 2017-06-09 10:09 行歌 阅读(1460) 评论(0) 推荐(0)

摘要:Notification的作用 Notification是一种全局效果的通知,在系统的通知栏中显示。既然作为通知,其基本作用有: 显示接收到短消息、即时信息等 显示客户端的推送(广告、优惠、新闻等) 显示正在进行的事物(后台运行的程序,如音乐播放进度、下载进度) Notification的基本操作: 阅读全文

posted @ 2017-06-02 20:37 行歌 阅读(3341) 评论(0) 推荐(0)

摘要:为什么需要有运行时权限? 大家都知道在Android6.0之前,权限在应用安装过程中只询问一次,以列表的形式展现给用户,如果点击取消(即不认可应用所申请的权限),则会取消应用的安装。而用户出于安装应用的需求,一般都会点击同意,而应用就有可能在后台进行一些非法操作。(同时,因为这个原因,应用可能会出现 阅读全文

posted @ 2017-06-02 10:50 行歌 阅读(332) 评论(0) 推荐(0)

摘要:一、什么是View?什么是ViewGroup? View是Android中所有控件的基类,不管是Button、ListView还是RelativeLayout,它们的基类都是View。View是一种界面层的控件的一种抽象,代表了一个控件。 而什么是ViewGroup,从字面上看,ViewGroup应 阅读全文

posted @ 2017-06-01 18:38 行歌 阅读(380) 评论(0) 推荐(0)

摘要:自定义View,也可以称为自定义控件,通过自定义View可以使得控件实现各种定制的效果。 实现自定义View,需要掌握View的底层工作原理,比如View的测量过程、布局流程以及绘制流程,除此之外,还需要掌握View常见的回调方法。而对于那些具有滑动效果的自定义View,我们还需要处理View的滑动 阅读全文

posted @ 2017-05-31 21:32 行歌 阅读(956) 评论(0) 推荐(0)

摘要:Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. > com.android.build.api.transform.TransformException: com.android.b 阅读全文

posted @ 2017-05-31 08:52 行歌 阅读(535) 评论(0) 推荐(0)