自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 Android开发:精益求精,那些你所不知道的东西,我全都有!

现在的Android面试已经不比当年,当初找工作的年代,基本上问一问四大组件的用法,最多再问一下ListView的优化技巧,一份Offer就拿到手了。而现在,新技术越来越多,大家的技术也越来越好,与之对应的招聘的要求也越来越高,现在的面试官会更喜欢关注细节,来确定你对于该方面的技术是不是真的了解。然而正巧,我这边有很多Android高级进阶资料,有AndroidNDK,Gradle、RxJava...

2019-05-14 17:32:57 267

原创 安装与配置Flutter开发环境

这篇博客我们介绍了Flutter,并且对比了H5,React Native,Flutter。由于Flutter是跨平台的开发框架,开发一次可以同时运行在Android和iOS上面,所以我们开发时最好使用Mac系统,这样我们可以同时测试两个平台的运行效果。本文我们就来介绍在Mac系统下安装与配置Flutter开发环境,并且运行我们的第一个Flutter应用!为了Flutter的安装配置顺利,请...

2019-05-13 17:07:36 307

原创 关于2019的一些面试实战小结

今日头条屏幕适配的原理?1:首先计算出 density,计算公式:当前设备屏幕总宽度(单位为像素)/ 设计图总宽度(单位为 dp) = densitydensity 的意思就是 1 dp 占当前设备多少像素计算density 的原因:在布局文件中填写的是什么单位,最后都会被转化为 px,系统就是通过上面的方法,将你在项目中任何地方填写的单位都转换为 px但是,今日头条适配方案默认项目中只能以高...

2019-05-09 16:58:18 421

原创 Android开发者们,又准备跳槽了?

可能有很多朋友在做了多年技术之后都会进入一个迷茫期,对自己所负责的业务逻辑非常熟悉,但是每天就只是和各种需求和Bug打交道而已,总感觉对自身能力的提升并不大。虽然在公司里属于不可缺少的一员,但是同时又担心离开了这家公司就找不到更好的工作了。有这种焦虑的朋友或许应该思考一下这个问题:如何提升自己在 Android 市场上的竞争力?当你觉得进入到迷茫或者瓶颈期的时候其实更应该注重基础,也就是更加...

2019-05-08 17:21:24 295

原创 Android热修复原理

一. AndFixAndFix的原理就是方法的替换,把有bug的方法替换成补丁文件中的方法。注:在Native层使用指针替换的方式替换bug方法,已达到修复bug的目的。AndFix采用native hook的方式,这套方案直接使用dalvik_replaceMethod替换class中方法的实现。由于它并没有整体替换class, 而field在class中的相对地址在class加载时已确...

2019-05-05 15:55:18 214

原创 Android权限之动态权限

安卓系统的权限管理机制从API 23 (也就是Android 6.0 又叫做 Android M,)之后发生了比较大的改变,在一些比较危险的权限上要求必须申请动态权限,即使你在AndroidMainfest.xml文件中申请也没有任何用,或者你可以将编译的目标版本设定这API 22,这样就可以了。但这并不是长久之计,不是吗?所以因此在这里学习一下。动态权限需求原因Android 6.0之前,权...

2019-05-05 14:57:08 6484

原创 Retrofit解析

一、整体思路从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的,实现方案上有什么技巧,有什么范式。全文基本上是对 Retrofit 源码的一个分析与导读,非常建议大家下载 Retrofit 源码之后,跟着本文,过一遍源码。二、基本用例2.1 创建 Retrofit 对象Retrofit retrofit = new Retrofit.Builder() .bas...

2019-04-30 17:51:55 441

原创 OkHttp解析

一、整体思路从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的,实现方案上有什么技巧,有什么范式。全文基本上是对 OkHttp 源码的一个分析与导读,非常建议大家下载 OkHttp 源码之后,跟着本文,过一遍源码。对于技巧和范式,由于目前我的功力还不到位,分析内容没多少,欢迎大家和我一起讨论。首先放一张完整流程图(看不懂没关系,慢慢往后看):二、基本用例来自OkHtt...

2019-04-30 17:28:50 666

原创 Hello~Android开发者们

经常在群里听到大家对Android抱有一些消极的态度,想要换个方向,但是如果换个方向就能变成大牛的话,那大家都换就好了。其实任何方向都存在”二八“定律,总有20%混的很好的人,我们要努力成为那20%,所以对自己的要求要逐渐提高,走出舒适区,尝试破局!现在已经不能停留在熟练使用RxJava,Retrofit,OkHttp以及各种图片库了,而是要源码级彻底掌握他们。要清楚,一个库再牛逼,那也是作者...

2019-04-26 21:13:01 172

原创 Android图片异步加载框架Android-Universal-Image-Loader

Android-Universal-Image-Loader是一个图片异步加载,缓存和显示的框架。这个框架已经被很多开发者所使用,是最常用的几个 Android开源项目之一,主流的应用,随便反编译几个,都可以见到它的身影。淘宝,天猫,Facebook,京东商城等都用到了这个项目。该项目的Github地址链接:https://github.com/nostra13/Android-Universa...

2019-04-26 17:29:33 343

原创 Android 布局巧用之include、merge、ViewStub

相信大家经常听到include、merge、ViewStub这样的标签,官方也提到这三种布局可用于布局的优化。今天就介绍下这三种布局的使用,记录下来,便于后续app中的使用。include布局重用app开发过程中,会遇到不同页面里有相同的布局,这时我们可以将这些通用的布局提取出来到一个单独的layout文件里,再使用<include>标签引入到相应的页面布局文件里,主要通过incl...

2019-04-25 19:45:22 207

原创 Android桌面小部件AppWidget开发

什么是AppWidgetAppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序,先看图:图中我用黄色箭头指示的即为AppWidget,一些用户使用比较频繁的程序,可以做成AppWidget,这样能方便地使用。典型的程序有时钟、天气、音乐播放器等。AppWidget 是Android 系统应用开发层面的一部分,有着特殊用途,使用得当的化,的确会为app...

2019-04-25 16:32:28 930

原创 Android View 绘制流程详解

View 绘制机制一、 View 树的绘图流程当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw。整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开,该函数所做 的工作可简单概况为是否需要重新计算视图大小(measu...

2019-04-24 17:27:44 222

原创 Android开发,再次学习MVP

一、MVP简介Model: 数据层,负责与网络层和数据库层的逻辑交互。View: UI层,显示数据, 并向Presenter报告用户行为。Presenter: 从Model拿数据,应用到UI层,管理UI的状态,响应用户的行为。二、MVP优势在学习todo-mvp之前,先了解一下MVP的优势。分离了视图逻辑和业务逻辑,降低了耦合。Activity只处理生命周期的任务,代码变得更加简洁...

2019-04-24 16:28:08 184

原创 使用 Kotlin 编写你的第一个 Firefox WebExtension 扩展

Kotlin 是我最喜爱的编程语言。我们已经知道 Kotlin 编译成 Java 字节码可以快速被安卓和服务端采用。事实上,Kotlin 还支持编译成 JavaScript,因此该语言也开始在 Web 生态系统中受到关注。尽管已经发布了许多 Kotlin 编写的 Web 应用程序,但至今人们都忽略了 Kotlin 还可以写浏览器扩展插件。所以我写了这篇文章,和大家一起探讨使用 Kotlin JS...

2019-04-23 17:56:17 230

原创 MVVM 架构与数据绑定库

Model-View-Presenter(MVP),即模型-视图-表示层,架构被广泛应用于 Android 应用程序,通过引入表示层将视图与表示逻辑和模型分离。Model-View-ViewModel(MVVM),即模型-视图-视图模型,与 MVP 非常相似,视图模型充当增强的表示层,使用数据绑定器保持视图模型和视图同步。通过将视图绑定到视图模型属性上,数据绑定程序可以处理视图更新而无需手动更改数...

2019-04-22 20:32:59 330

原创 关于Android界面组件的基本用法

1.文本框(TextView)和编辑框(EditText)文本框(TextView)不允许用户编辑文本内容,而编辑框(EditText)允许用户编辑文本内容2.按钮(Button)和图片按钮(ImageButton)Button显示文字,ImageButton显示图片。为ImageButton指定android:text属性没用,不会显示文字可以指定android:background为...

2019-04-22 17:23:24 325

原创 关于Android的几种事件处理

Android事件处理通常和控件相结合,通常有以下几种事件处理模型:•(一)事件监听的处理模型public voidonCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b...

2019-04-22 17:05:34 867

原创 Kotlin每个Android应用程序开发人员必须知道的功能

Java被认为是Android操作系统的核心,因此,对于每个Android开发人员来说,除了Java之外几乎没有其他选择。好吧,最后,Java的一个极好的替代品已经出现了很多价值。Kotlin是一种编程语言,是Java开发的更好,更有效的替代方案。此时此刻,Android社区对Kotlin的讨论充满了热情。这正是我们要解释Kotlin的五个关键特征的原因。Kotlin优于Java的优势由J...

2019-04-19 17:39:35 351

原创 如何从Android应用程序捕获堆转储

堆转储是诊断与内存相关的问题(如内存泄漏,垃圾收集问题和java.lang.OutOfMemoryError)的重要工件。它们也是优化内存使用的重要工件。在本文中,我们提供了一些从Android应用程序捕获堆转储的不同选项。捕获堆转储后,你可以使用HeapHero和Android Studio堆分析器等优秀工具来分析堆转储。1. Memory Profiler以下是从Android Stud...

2019-04-19 16:48:53 3244

原创 Android Support库和AndroidX冲突问题

项目运行重新编译,编译到一半就报错了,真是一脸懵逼。好好的怎么就突然报错了?错误信息如下:• ErrorManifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:s...

2019-04-18 19:49:29 1801

原创 Android线程与消息处理

一、实现多线程1.创建线程(1)通过Thread创建线程Thread thread = new Thread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub }});(2)通过实现Runnable()接口创建线程public class MainActivity...

2019-04-17 17:02:11 254

原创 Flutter快速高效地构建移动应用程序

关于FlutterFlutter是高效,可扩展和开放的开发模式帮助创建美观,快速的应用程序。美观的应用我们希望设计师能够提供他们的全部创意愿景,而不会因为底层框架的限制而被迫解决问题。Flutter的分层架构可以控制屏幕上的每个像素,其强大的合成功能可以无限制地叠加和动画图形,视频,文本和控件。Flutter包含 一整套小部件,可在Android上提供完美的像素体验。快速应用...

2019-04-17 16:31:15 437

原创 Android多渠道打包相关

一、多渠道打包概述由于国内存在着有众多的应用市场,在不同的应用市场可能有不同的统计需求,为此Android开发人员需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。在安装包中添加不同的标识,以此区分各个渠道,方便统计app在市场的各种效果。因此,每当发新版本时,市场会提供一个渠道列表,Android RD会根据这些渠道相应地生成等量的渠道包。随着渠道越来越多,为了提高渠...

2019-04-16 17:48:26 412

原创 Android推送服务的几种实现方式

现实生活中, 推送服务就像订杂志一样, 只要留下你的地址, 杂志就能如期送到你手里, 可以认为每个人都有唯一的一个地址, 但在目前的网络上, 这是办不到的, 因为不是每个人都有一个唯一的地址, 服务器想要给我们推送一条消息, 必须知道我们的地址, 但服务器不知道我们在哪.说到推送服务, 我所知道的实现方案有如下几种:轮询客户端定期询问服务器有没有新的消息, 这样服务器不用管客户端的地址是什么...

2019-04-16 17:28:07 7762 3

原创 为什么Android变得对商业世界至关重要?

Android是一种开源操作系统,由谷歌于2008年推出。今天,Android是最受欢迎的操作系统平台,拥有超过85%的智能手机和65%的平板电脑市场份额。这就是为什么Android应用程序开发已经成为企业想要采用的最时髦的技术之一,以便在移动平台上启动并获得关注,并通过提供高质量的服务来吸引客户。Android应用程序开发为企业带来了移动性的真正好处。拥有Android应用后,您可以将其发布...

2019-04-15 17:25:51 234

原创 对Android移动应用开发流程的最新影响

移动应用程序开发人员不断尝试开发新方法,不仅可以简化开发过程,还可以为客户提供独特的设计和用户体验。每年,发展趋势和技术都在发生变化,尖端技术和工具正在进入市场并影响移动应用程序开发。几年前,Android闯入IT世界并创造了一场革命。该系统的创新趋势仍在用户心中产生巨大影响。在本博客中,我将讨论影响Android应用程序开发过程的一些趋势。虽然很难说未来会发生什么,但无可否认,移动应用程序开...

2019-04-15 16:57:47 380

原创 Android开发者进退两难的出路;转行还是进阶?

互联网寒冬的话题沸沸扬扬几个月了。被裁过的程序员更迷茫了,没被裁的无论是离职还是面试跳槽也变得更谨慎了。2018年6月以来,全国上百家P2P平台接连爆雷,裁员潮在互金领域抢先发生。2018年8月,美图公司Q2季度财报收入同比下降5.9%,净亏损1.27亿,较上年同比收窄3.4%,随即网 曝美图公司裁员消息。2018年10月,阿里京东全面“缩招”2018年12月,美团3分钟裁员。201...

2019-04-14 21:06:34 3727

原创 清洁和新Android架构的认知诉求

一个根本性的变化即将改变Android的核心工作方式。但你为什么要关心?而且,为什么这是一件好事?让我们来看看。Android的新架构组件现已正式并固化。毫无疑问,View Models和LiveData等架构组件将使Android开发世界中新手的生活变得更加轻松。但是对于经验丰富的开发人员来说,问题将不可避免地出现在新的架构组件如何以及在何处与干净架构的概念一致,正如Bob叔叔所倡导的那样。...

2019-04-12 22:06:11 157

原创 Android权限处理分类

一、权限处理分类由上图可以看出,主要分为四类。下表逐一介绍各类对应的一些情况。二、动态权限申请虽然总的来说分为四类,但是只需要处理一种情况,即动态申请权限。其他三种情况,要么默认实现,要么系统定制,无法从代码角度进行调整。那么下面先来看下那些权限需要动态申请。(1)权限列表Android6.0以上把权限分为普通权限和危险权限,所以危险权限是需要动态申请,给予用户提示的,而危险权限就...

2019-04-12 19:57:43 218

原创 Android布局优化之include、merge、ViewStub的使用

一、<include/>标签在布局优化中是使用最多的一个标签了,它就是为了解决重复定义布局的问题。标签就相当于C、C++中的include头文件一样,把一些常用的底层的API封装起来,需要的时候引入即可。在一些开源的J2EE中许多XML配置文件也都会使用标签,将多个配置文件组合成为一个更为复杂的配置文件,如最常见的S2SH。在以前Android开发中,由于ActionBar设计上的...

2019-04-12 19:55:28 332

原创 Android附近:如何集成Android和Android的东西

本文将探讨如何使用Android Nearby,展示如何集成Android和Android Things。我们可以使用几种策略来集成Android和Android Things。Android Nearby技术就是其中之一。Android提供了一组API,可以简化两个不同设备之间的数据交换。一个有趣的方面是Android Nearby也支持iOS操作系统。• Android Nearby是一项...

2019-04-12 19:49:15 330

原创 如何在Android中实现异步任务

在Android应用程序中,当我们需要与可能需要时间的外部资源(例如从外部API或数据库获取数据)进行交互时,我们希望主UI保持交互并阻止UI线程在长时间运行的进程中运行很活跃。 另请注意,默认情况下,不允许在Android的UI线程中运行网络任务。 如果主线程用在Android应用程序中,当我们需要与可能需要时间的外部资源(例如从外部API或数据库获取数据)进行交互时,我们希望主UI保持交互并...

2019-04-11 21:17:57 1868

原创 如何提升自己在 Android 市场上的竞争力

随着“5G”(第五代移动通信技术)商用进程越来越快,各个芯片和终端厂商们都已经开始布局准备,想必智能手机会是消费者最先能够接触到5G的重要终端,而和其相辅相生的移动互联网也势必会有新的发展。但是和行业本身的发展不相称的是, Android 开发者的市场需求仿佛处于寒冬。最直观的现象就是,工作没有那么好找了。2018年底开始,不管从是官方的公告或是同事午餐间隙的聊天里,都透露着一个信息:资本寒冬...

2019-04-11 17:51:01 313

原创 快速Android开发系列网络篇之Android-Async-Http

先来看一下最基本的用法client.get("http://www.google.com", new AsyncHttpResponseHandler() { @Override public void onSuccess(String response) { System.out.println(response); }});通过AsyncHttp...

2019-04-11 17:15:37 184

原创 Android开发中,使用 EditText 输入内容,如何进行一键清空内容处理

本文仅为个人的处理方式,希望能对您有所帮助,欢迎各位留言指正1、text.xml示例:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_pare...

2019-04-11 17:13:58 6172 1

原创 Android全局异常处理

在做android项目开发时,大家都知道如果程序出错了,会弹出来一个强制退出的弹出框,这个本身没什么问题,但是这个UI实在是太丑了,别说用户接受不了,就连我们自己本身可能都接受不了。虽然我们在发布程序时总会经过仔细的测试,但是难免会碰到预料不到的错误。今天就来自定义一个程序出错时的处理,类似iphone的闪退。(虽然闪退也是用户不愿意看到的,但是在用户体验上明显比那个原生的弹窗好多了)废话不多...

2019-04-11 17:12:07 155

原创 Android性能优化

针对Android的性能优化,主要有以下几个有效的优化方法:1.布局优化2.绘制优化3.内存泄漏优化4.响应速度优化5.ListView/RecycleView及Bitmap优化6.线程优化7.其他性能优化的建议下面我们具体来介绍关于以上这几个方面优化的具体思路及解决方案。二、布局优化关于布局优化的思想很简单,就是尽量减少布局文件的层级。这个道理很浅显,布局中的层级少了,就意味...

2019-04-11 17:10:35 223

原创 谷歌Android Q详解:这些新特性让我们迫不及待想上手!

3月份,谷歌对外发布了Android Q的开发者预览版。近日,谷歌又对外发布了Android Q的首个公测版,用户目前可以下载使用,以便了解谷歌下一代移动操作系统的新功能和新特性。今天,小编将带着大家了解一下Android Q中的一些大型的改进,包括已经证实的和一些未证实但备受用户期待的。虽然Android Q的测试版并未包含所有传闻中的功能,例如黑暗模式和重新设计的股票应用程序和桌面模式等,...

2019-04-11 17:08:09 432

原创 Android开发之帧动画

Android动画主要分为3种View动画(Android开发之View动画)帧动画属性动画何为帧动画?帧动画最简单,通过顺序播放一系列的图像产生动画,有点类似动画片以tomcat案例来讲解1、首先准备好一组图片(网上找的现成的一组图片),然后定义一个AnimationDrawable,命名为ani.xml,按照图片顺序排好,如下:<?xml version="1.0" en...

2019-04-10 19:43:22 212

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除