ViewPager
在开发中使用的频率非常的高,例如Banner
轮播图,首次启动显示的介绍图等,这篇博客就详细介绍一下ViewPager
的使用。
图片可以丰富App
的显示效果,但是图片也是最难处理的,因为通常情况下,图片是最耗内存的。
iOS
的同学都知道SDWebImage
,它极大的简化了我们对图片的操作。而Android
端的图片加载框架则有很多,Volley
、Picasso
和Glide
,今天我们主要说的就是Glide
。
在iOS
系统中,系统会为每个应用分配一个独立的空间,用来存放应用产生的数据,并且每个应用只能访问自己的存储空间。由于Android
手机可以插拔内存卡,所以,相对于iOS
来说,存储方式更多一点。
说起权限问题,iOS
平台处理的非常严谨,几乎所有的权限都需要在运行时由用户来确认是否允许应用使用此权限。android
平台稍微好一点,一部分权限只需要在AndroidManifest.xml
中申请一下就可以使用,一部分却需要在运行时由用户来确定。今天就来说说Android
的运行时权限问题。
首先要说一下现在手机的UI风格,其实之前包括现在,Android
的界面设计都是模仿iOS
的,就拿我之前的公司,所有的UI
图都是根据6s
的尺寸,iOS
的设计风格来设计得到,Android
同学有时候就抱怨,这个好难实现,但是在iOS
上,实现起来就很容易了。那么在2014年,谷歌推出了Material Desisgn
,一套全新的界面设计语言,但是不少Material Desisgn
的效果却很难实现,而Android
中却几乎没有提供相应的API
支持,于是在2015年,谷歌推出了一个Design Support
库,这个库将Material Desisgn
中最具代表性的一些控件和效果进行了封装,那么,今天我们就来看看有哪些常用的控件。
很早以前就听闻<JavaScriptCore/JavaScriptCore.h>
的大名了,只是没有正面接触过,有的也只是间接接触过,比如ReactNative
,它渲染界面的核心就是<JavaScriptCore/JavaScriptCore.h>
。但是今天就不得不和它有一次正面的接触了,公司要做一个功能,需要Native
和js
方法之间的互调,所以,本篇文章就说说如何实现。当然,本篇文章说的都是基础。
本篇文章主要说一下如何利用ReactNative
的jsbundle
机制来实现App
的热更新。
前段时间iOS
界发生了一件大事,苹果禁止含有热更新或者热修复的APP
上架,这里主要是禁止使用runtime
的一些特性。但是ReactNative
不同,它没有使用到runtime
特性,并且好多人已经证实,ReactNative
应用依然可以上线。
其实好多应用并不是使用ReactNative
直接开发,而是在原生应用的基础上,导入ReactNative
。iOS
最好使用cocoapods
导入,Android
使用build.gradle
添加依赖包。本篇文章主要包含三个部分:环境搭建、iOS
热更新和Android
热更新。
前段时间我有说过Handler
、Message
、Looper
三者之间的关系,它们可以解决线程间通信,可以用作子线程处理耗时操作,主线程刷新UI等。今天我要说的是另外一种解决方案:AsyncTask
。它的内部还是使用异步消息处理机制,只是Android
对这三者进行了高度的封装。如果你对异步消息处理机制还不是很清楚的话,你可以看看这篇文章:一天一Android之异步消息处理机制。来看看AsyncTask
到底如何使用。
写在此文章之前
最近一直在研究Android
,我开始学习Android
是有原因的,前段时间写过一个类似于一元夺宝的跨平台APP,里面的好多功能是ReactNative
没有提供的,好在现在ReactNative
开源社区里面已经有好多优秀的开源库了,就直接拿来用了,但是,这并不能满足开发中一些特殊的需求,这个时候就要写js和原生之间的桥接了,因为我的老本就是iOS
,所以写iOS
的桥接很容易。但是写Adnroid
就有点费力了,因为我对Android
一窍不通。但是想学好ReactNative
,只会iOS
是不行的,所以我就开始了我的Android
之旅。还有,假如ReactNative
在以后死掉了,我也新郑了Android
开发这一新技能,一本万利。
Android
的博客也写了几篇了,我要回过头来说一些ReactNative
的东西,所以,如果你看到我今天在说Android
,明天又说ReactNative
,你不要奇怪,这很正常。
那今天就先来说说关于js和原生的桥接。
阅读全文今天愚人节,先祝大家愚人节快乐!
今天来说一下Android开发中经常使用到的一个类:Fragment
。由于Android
屏幕的碎片化,Android
为我们提供了一个和方便的类来使我们的APP可以适应各种屏幕的手机和平板,当然,Fragment
的功能远不止是为适应屏幕而生。你可以把Fragment
当成Activity
的一个界面的一个组成部分,甚至Activity
的界面可以由完全不同的Fragment
组成,更神奇的是Fragment
拥有自己的生命周期和接收、处理用户的事件,这样就不必再Activity
写一堆控件的事件处理的代码了,更重要的是,你可以动态的添加、替换和移除某个Fragment
。