一天一Android之布局

发布在 Android

今天主要说说布局。我在看Android的任何内容的时候,心中总要和iOS进行一番比较,就说布局吧,在iOS中,我们一般直接使用frame计算、AutoLayout约束布局。在Android的世界中,一般使用xml布局文件来进行布局,用到的布局方式有四种:线性布局、相对布局、帧布局、百分比布局。还有一种是直接使用图形化添加约束:ConstraintLayout。为何Android的布局方式如此的多,主要是因为Android屏幕的碎片化,不像苹果就那几款手机。

阅读全文

一天一Android之Activity

发布在 Android

今天来说一说Android四大组件之一的Activity,类似于iOS的UIViewController。当我们新建一个Android项目时,Android Studio默认会为我们创建一个主活动:MainActivity和一个默认的主布局:activity_main.xml。一个活动想要显示在屏幕上,就必须在AndroidManifest.xml中注册。但是这些工作都有IDE帮我们自动完成了。我们来看AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.guiyongdong.activitydemo">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!--MainActivity-->
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
阅读全文

由于前段时间使用ReactNative开发过一个项目,在开发的过程中,会使用到大量的非ReactNative提供的组件和功能。这时候就必须写原生桥接,iOS还好说,毕竟是靠这个吃饭的,可是android就捉襟见肘了。为了向大前端的目标更进一步,我计划开始学习android,为期6个月,我的目标是6个月内起码自己公司的android项目可以上手,当然,如果想成为真正的android开发者,光靠这6个月是不行。还需要大量的实际项目才能锻炼。

值得庆幸的是我在大学主攻的就是java(哈哈,现在也基本上忘的差不多了)。为了打好基础,我买了两本书,一本是《java编程思想》,一本是京东上销量很好的《第二行代码Android》,希望这两本书能够帮到我。另外我也会专门开一个专栏,讲解我学习java的过程。可能在接下来的博客中,我总结的都是基础知识,大神莫嘲笑。

阅读全文

转场动画详解

发布在 Objective-C

iOS开发中,页面之间的跳转无外乎由UINavigationController管理的push或者pop操作、以及由UIViewController管理的presentdismiss操作,无论何种操作,iOS原生系统都为我们提供了页面之间的基础跳转动画。但是往往在开发中,由于各种功能需求,iOS原生系统提供的跳转动画并不能满足我们的需求,好在iOS早就给我们提供了一套自定义转场动画的解决方案,这篇文章就来详细了解一下转场动画。在了解这篇文章之前,先看看iOS提供的整个转场框架



阅读全文

网络是APP开发中非常重要的一部分,除非这个APP是本地自玩,否则就离不开网络。在iOS开发中,我们一般都会去使用别人造好的轮子,其中最有名也最常用的非AFNetworking莫属。这篇文章就深入探讨一下AFNetworking是如何工作的。

概述


我们先来看看AFNetworking整个架构体系:



首先,我们有两个问题需要了解:

  • 如何使用NSURLSession发出HTTP请求
  • 如何使用AFNetworking发出HTTP请求
阅读全文

SDWebImage源码分析

发布在 源码分析

SDWebImage是一个开源的第三方库,它提供了UIImageView的一个分类,以支持从远程服务器下载并缓存图片的功能。它具有以下功能:

  1. 提供UIImageView的一个分类,以支持网络图片的加载与缓存管理
  2. 一个异步的图片加载器
  3. 一个异步的内存+磁盘图片缓存
  4. 支持GIF图片
  5. 支持WebP图片
  6. 后台图片解压缩处理
  7. 确保同一个URL不会被反复加载
  8. 确保下载及缓存时,主线程不被堵塞

从github上对SDWebImage使用情况可以看出,SDWebImage在图片下载及缓存的处理还是被认可的。在本文中,我们主要从源码的角度来分析一下SDWebImage的实现机制。讨论的内容将主要集中在图片的下载及缓存,而不包含对GIF图片及WebP图片的支持操作。不过在3.8.2版本以后,SDWebImage将会使用NSURLSession代替原来的NSURLConnection,主要是更新的是下载功能部分。具体变化可以看:点这里。目前截止到当前时间,最新的版本为4.0.0-beta2,这篇文章是在4.0.0-beta2基础上进行剖析。

阅读全文

前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。

本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。当然这并不能包含所有的内容。runtime还有许多内容。

阅读全文

Objective-C中的分类允许我们通过一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。

Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为“delegation”模式,@protocol声明了可以被其他任何类实现的方法,协议仅仅是定义一个接口,而由其他的类去负责实现。

在本章中,我们来看看runtime对分类与协议的支持。

阅读全文

前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。

阅读全文
Copyrights © 2019 贵永冬. All Rights Reserved.
作者的图片

贵永冬

iOS开发者
会一点RN和android, 十足的海贼迷


河南信悦通网络科技有限公司


河南 郑州