去面试腾讯iOS开发要达到咋样的水准?
在风口上时,猪都能飞,但风口过去,当一个就业市场不再那么火爆时,等待的必然是弱者的淘汰。
程序员的职业发展分类
程序员的职业发展大体分为四类。
1)一直钻研技术
说到底打铁还需自身硬,对于程序员这靠技术吃饭的职业,技术当然是至关重要的。
所以,对于那些热爱技术,编码能高潮的技术男这是一...[2021/5/6]
Android开发高手课,前微信高级工程师给你的App把把脉
整个移动互联网行业正处于增量下降、存量厮杀的阶段。面对技术变革、前景不明、竞争激烈的现状,行业和企业对中高级移动开发工程师的要求越来越高。
为Android开发者的进阶量身定制,专栏围绕打造高质量应用、实现高效开发和架构演进,包含图文、音频的教学,还有作者精心设计的练习,
帮...[2021/5/6]
HMS Core文档众测,有奖征集!人人都是体验官活动第二季
HMS Core经历多个版本的发展,开放了越来越多的能力。开发者文档是开发者接触HMS Core的第一界面,为了提升开发者接入效率和体验,
产品资料团队在2020年开展了第一季文档体验官活动,收集了1031个文档问题,大大提高了开发者文档的质量。
今年,第二季HMS Core文档体验官活...[2021/5/6]
【Android】AES加密算法的Android实现
1 import android.text.TextUtils;
2 import android.util.Base64;
3 import android.util.Log;
4
5 import javax.crypto.Cipher;
6 import javax.cr...[2021/5/6]
快速上手Kotlin开发,Java Android开发者的实战指南
2017 年, Kotlin 成为 Android 开发的官方编程语言。
Kotlin 不仅仅可以用于 Android 应用开发,它简洁和表现力强地代码,与 Java 完全兼容和平滑的学习曲线,
足以让程序员选择 Kotlin 在服务器端编程。
无论是想提高...[2021/5/6]
20210505微信开发小程序入门(开发平台介绍、组成)
微信开发小程序平台介绍及组成介绍
...[2021/5/6]
SwiftUI 简明教程之文本与图片
本文为 Eul 样章,如果您喜欢,请移步 AppStore/Eul 查看更多内容。
Eul 是一款 SwiftUI & Combine 教程类 App(iOS、macOS),以文章(文字、图片、代码)配合真机示例(Xcode 12+、iOS 14+,macOS 11+)的形式呈现...[2021/4/19]
IOS Safari keyup不生效如何解决?IOS Safari keyup不生效如何解决?
H5 项目做了一个 搜索,使用的是keyup触发,后来发现 ios系统不生效,
解决方案:
<input
id="master_college"
type="text"
name="ma...[2021/4/19]
带你解决80%的iOS开发难题
iOS开发已经走过了十多年时间,移动圈子里相继诞生了组件化、热修复、动态化、大前端、Flutter、小程序等热门技术,给人一种“乱花渐欲迷人眼”的感觉。
但是从本质来看,它们背后都是一些通用的底层技术和创新的设计思想。热修复、动态化和大前端的底层技术,都是 JavaScript...[2021/4/19]
拇指记者深入Android公司,打探事件分发机制背后的秘密
前言
聊到事件分发,很多朋友就会想到view的dispatchTouchEvent,其实在此之前,Android还做了很多工作。
比如跨进程获取输入事件的方式?在dispatchTouchEvent责任链之前还有一条InputStage责任链?DecorView,PhoneWindow之间的传...[2021/4/19]
帧动画与补间动画的使用,
一:帧动画(FameAnimation)
帧动画是一帧一帧的播放的,通过快数播放图片达到动画的效果
帧动画的使用有两种方式:
1:通过xml配置帧动画
...[2021/4/19]
Fragment基本使用
1. Fragment概述
1.1 介绍
Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间,出现的初衷是为了适应大屏幕的平板电脑,可以将其看成一个小型Activity,又称作Activity片段。
使用Fragment可以把屏幕划分成几块,然后进行分...[2021/4/19]
flutter实现更新弹窗内容例子(亲测有效)flutter实现更新弹窗内容例子(亲测有效)
什么是Flutter
Flutter 是谷歌推出的开发移动UI框架,可以快速的在IOS和Android上构建高质量的原生用户界面。
Flutter可以与现有的代码一起工作,并且Flutter是完全免费的,开源的。
总结来说:
Flutter是一款移动应用程序SDK,包含框架、widg...[2021/4/19]
分析Android 11.0Settings源码之主界面加载
本篇主要记录AndroidR Settings源码主界面加载流程,方便后续工作调试其流程。
Settings代码路径:
package app/Setting
Settings代码获取:
Setting 源码下载地址:https: github.com/aosp-mirror/pla...[2021/4/12]
如何使用Android注解处理器
我们就可以结合今天的Annotation Proce ing Tool(APT)来自定义注解处理器。
注解处理器简单解释就是收集我们标记的注解,处理注解上提供的信息。
本篇用我之前写的Saber举例说明。
1.定义注解
推荐New -> Module -> Java Li...[2021/4/12]
详解android在mob平台实现qq登陆和分享
个人感觉mob平台功能还是比较强大的,很多功能都可以通过他们平台来实现。
建议仔细观看每一个步骤,如果一个步骤没处理好,可能就会让你的这个功能无法实现。相信我一定可以成功的。
废话少说,先看一下效果:
1.在mob平台配置ShareSDK环境
1.如何在mob平台创建应用
下面...[2021/4/12]
详解Android Lint的原理及其使用详解Android Lint的原理及其使用
Android Lint 原理及使用详解
Android Lint 是 ADT 16中引入的新工具,用于扫描 Android 项目源中的潜在错误。
Lint 是 Android 提供的一个强大的,用于静态扫描应用源码并找出其中的潜在问题的实用工具。lint 工具可以检查你的 Androi...[2021/4/12]
Android studio案例之实现电话拨号
一、代码配置
1、创建项目
流程看图
2、增添代码
更改布局
布局完整代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:...[2021/4/12]
Swift 进阶(十二)高级运算符、扩展、访问控制Swift 进阶(十二)高级运算符、扩展、访问控制
高级运算符
溢出运算符(Overflow Operator)
Swift的算数运算符出现溢出时会抛出运行时错误
Swift有溢出运算符&+、&-、&*,用来支持溢出运算
var min = UInt8.min
print(min &- 1) 255, In...[2021/4/12]
Swift 进阶(七)方法、下标
方法(Method)
基本概念
枚举、结构体、类都可以定义实例方法、类型方法
实例方法(Instance Method):通过实例对象调用
类型方法(Type Method):通过类型调用
实例方法调用
cla Car {
var count = 0
func...[2021/4/12]
Swift 进阶(九)协议、元类型
协议(Protocol)
基本概念
协议可以用来定义方法、属性、下标的声明,协议可以被结构体、类、枚举遵守
protocol Drawable {
func draw()
var x: Int { get set } get和set只是声明
var y: Int {...[2021/4/12]
Swift 进阶(十)错误处理、泛型Swift 进阶(十)错误处理、泛型
错误处理
错误类型
开发过程中常见的错误有
语法错误(编译报错)
逻辑错误
运行时错误(可能会导致闪退,一般也叫做异常)
....
自定义错误
Swift中可以通过Error协议自定义运行时的错误信息
enum SomeError: Error {
case illegalArg...[2021/4/12]
Swift 进阶(十一)String、Array的底层分析Swift 进阶(十一)String、Array的底层分析
String
我们先来思考String变量占用多少内存?
var str1 = "0123456789"
print(Mems.size(ofVal: &str1)) 16
print(Mems.memStr(ofVal: &str1)) 0x3736353433323...[2021/4/12]
iOS底层原理(二)KVO和KVC
KVO
KVO的全称是Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变
KVO的使用
可以通过addObserver: forKeyPath:方法对属性发起监听,然后通过observeValueForKeyPath: ofObject: change:...[2021/4/12]
iOS底层原理(三)CategoryiOS底层原理(三)Category
Category的本质
Category的底层结构
1.我们先给Person增加一个Person+Eat的分类
@interface Person (Eat) <NSCopying, NSCoding>
- (void)eat;
@property (a ign, nonato...[2021/4/12]
iOS底层原理(四)blockiOS底层原理(四)block
block的本质
1.block的基本用法
不带参数无返回值的block
void (^block)(void) = ^{
NSLog(@"Hello, World!");
};
block();
带参数无返回值的block
void (^block)(int, int) = ...[2021/4/12]
iOS-宫格拼图iOS-宫格拼图
思路
要求设计思路是类似手持拼图游戏,拼图需求要求有一块为空白版,作为移动方块的预留位置用,通过选择图片后在起初对所有图像方块随机打乱顺序时,发现随机打乱顺序,没办法拼图完成,拼图移动是空白快最临近的上下左右四个图像块的移动,在打乱顺序的时候,也要按照这个算法逻辑实现,才能拼图完成;
另外逻辑...[2021/4/12]
iOS底层原理(五)Runtime(上)
什么是Runtime
Objective-C是一门动态性比较强的编程语言,跟C、C++等语言有着很大的不同;Objective-C的动态性是由Runtime API来支撑的
Runtime API提供的接口基本都是C语言的,源码由C\C++\汇编语言编写
方法类型的底层结构
在Cla 对象的...[2021/4/12]
iOS底层原理(五)Runtime(下)
动态方法解析
如果消息发送阶段不成功,那么就会进入到动态方法解析阶段
【第一步】 我们还是先从objc源码里找到函数resolveMethod_locked来看,分别对应着类对象和元类对象做了不同的调用处理
static NEVER_INLINE IMP
resolveMethod_lock...[2021/4/12]
iOS底层原理(六)RunLoopiOS底层原理(六)RunLoop
什么是RunLoop
从字面意思来看,就是运行循环的意思,其实就是在程序运行过程中循环做一些事情
RunLoop的应用范畴
下面几个技术都需要在RunLoop下才能进行
定时器(Timer)、PerformSelector- GCD Async Main Queue- 事件响应、手势识别、界...[2021/4/12]
iOS底层原理(七)多线程(上)
基本概念
进程和线程
进程:进程是指在系统中正在运行的一个应用程序
线程:1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)
一个进程(程序)的所有任务都在线程中执行
1个线程中任务的执行是串行的
进程和线程的比较
线程是CPU调用(执行任务)的最小单位
进程是CPU分配资源和...[2021/4/12]
iOS底层原理(七)多线程(中)iOS底层原理(七)多线程(中)
多线程的安全隐患
一块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源;当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题### 问题案例
卖票和存钱取钱的两个案例,具体见下面代码
@interface BaseDemo: NSObject
- (void)money...[2021/4/12]
iOS底层原理(七)多线程(下)
iOS中的读写安全
atomic
atomic用于保证属性setter、getter的原子性操作,相当于在getter和setter内部加了线程同步的锁原子性:原子即为最小的物理单位,意味不可再分割;即代码都为一个整体在同一线程进行操作
atomic只是保证setter、getter是线程安全...[2021/4/12]
iOS底层原理(八)内存管理(上)
iOS程序的内存布局
iOS程序的内存布局顺序如以下所示
我们可以通过打印内存地址来验证
int a = 10;
int b;
int main(int argc, char * argv[]) {
@autoreleasepool {
static int c...[2021/4/12]
iOS底层原理(八)内存管理(下)
weak指针
我们通常会使用__weak来对变量进行弱引用,被__weak修饰的变量一旦被释放,会自动置为nil
__unsafe_unretained的作用也是将变量变成弱指针,但是不同于__weak的原因是修饰的变量释放后并不会置为nil
weak的实现原理
我们可以在dealloc析构...[2021/4/12]
美团点评技术专家 帮你快速上手跨平台开发框架Flutter
Flutter并没有开创新的概念,它背后的框架原理和底层设计思想,与原生Android/iOS开发并没有本质区别,甚至从React、Native中吸收了不少优秀的设计理念。
Flutter是Google推出的全新跨平台移动开发框架。因为出色的性能、高效的开发方式等原因,Flutter极有可能成...[2021/4/12]
从网络请求过程看OkHttp拦截器
前言
之前我们结合设计模式简单说了下OkHttp的大体流程,今天就继续说说它的核心部分——拦截器。
因为拦截器组成的链其实是完成了网络通信的整个流程,所以我们今天就从这个角度说说各拦截器的功能。
首先,做一下简单回顾,从getResponseWithInterceptorChain方法开始。...[2021/4/12]
launcher 调用startActivity的时候是怎么调用到ATMS
在整个Activity启动流程中,这一步是比较简单的.主要是在Launcher中对应的*Activity类到框架代码的Acitivity类及其父类,Instrumentation类,ActivityTaskManager的本地代理类之间跳转条用.在这里我们主要是要搞清楚用到的类之间的继承和调用关...[2021/4/6]
Swift 进阶(四)结构体和类Swift 进阶(四)结构体和类
结构体
基本概念
在Swift标准库中,绝大多数的公开类型都是结构体,而枚举和类只占很小一部分
比如Bool、Int、String、Double、Array、Dictionary等常见类型都是结构体
struct Date {
var year: Int
var month:...[2021/4/6]
Swift 进阶(十七)源码分析
我们通过分析Swift标准库源码来更近一步了解Swift的语法
Array相关
map、filter的源码路径: wift-main tdlib/public/core/Sequence.swift
flatMap、compactMap、reduce的源码路径: wift-main tdli...[2021/4/6]
[iOS]dispatch_after()中self和weakself的使用[iOS]dispatch_after()中self和weakself的使用
苹果对编译器在不断优化,GCD方法中的block基本都不需要使用weakself,并不会造成循环引用。
dispatch_after官方文档中对block部分的说明:
一:使用self
从ViewControllerA push 到 ViewControllerB。ViewContro...[2021/4/6]
详解activity,及其生命周期详解activity,及其生命周期
1:应用程序的启动过程
应用程序的图标被点击-》启动activitythread-》线程的入口main函数-》创建activitythread-》绑定activitythread thread.attach(false,startSeq)-》创建仪表类生命周期,管理程序的生命进程mInstru...[2021/4/6]
view事件属性的使用,触摸屏幕事件的接收与坐标的转换
所有的控件都是直接或者间接继承与View的,所以View有的属性其他的控件都是有的
alpha:透明度,值从1(不透明)到0(全透明),0.5就是半透明
background:背景,可以是单一的颜色也可以是一张图片或xml配置文件
ID:是一个试图的标识,
tag: 是一个视图的另一种标...[2021/4/6]
Activity的生命周期详讲及其的生命周期监视,应用程序启动过程,
1:应用程序的启动过程
应用程序的图标被点击-》启动activitythread-》线程的入口main函数-》创建activitythread-》绑定activitythread thread.attach(false,startSeq)-》创建仪表类生命周期,管理程序的生命进程mInstru...[2021/4/6]
edittext,bmob短信验证讲解
1:edittext:
与TextView的区别就是edittext是可以被编辑的,与之前讲的视图所有的属性,它皆有:
android:inputType="number" 文本的输入形式,下图中,除了TextView不是edittext之外,以下都是,inputType的模式 就对应以下不...[2021/4/6]
android ProgressBar(进度条)
本节引言:
本节给大家带来的是Android基本UI控件中的Progre Bar(进度条),Progre Bar的应用场景很多,比如 用户登录时,后台在发请求,以及等待服务器返回信息,这个时候会用到进度条;或者当在进行一些比较 耗时的操作,需要等待一段较长的时间,这个时候如果没有提示,用户可能会...[2021/4/6]
Android端代码量非常小的分页加载库Android端代码量非常小的分页加载库
前言
RecyclerView几乎在每个app里面都有被使用,但凡使用了列表就会采用分页加载进行数据请求和加载。android 官方也推出了分页库,但是感觉只有kotlin一起使用才能体会到酸爽。Java 版本的也有很多很强大的第三方库,
BaseRecyclerViewAdapterHel...[2021/3/29]
SwiftUI学习之state和Binding的区别浅析SwiftUI学习之state和Binding的区别浅析
@state 绑定值的状态,其属性的修饰官方推荐使用private.上代码(ps:这里没用private 进行修饰,是为了演示区别)
import SwiftUI
struct FilterView: View {
@Binding var isFavorite: Bool
...[2021/3/29]
怎么理解onStart可见但不可交互
前言
今天朋友遇到一个面试题,分享给大家:
onStart生命周期表示Activity可见,那为什么不能交互呢?
这个问题看似简单,但涉及到的面还是比较多的,比如Activity生命周期的理解,进程的理解,以及View绘制的时机。
一起看看吧。
onStart介绍
首先,是关于onSta...[2021/3/24]
从设计模式角度看OkHttp源码
前言
说到源码,很多朋友都觉得复杂,难理解。
但是,如果是一个结构清晰且完全解耦的优质源码库呢?
OkHttp就是这样一个存在,对于这个原生网络框架,想必大家也看过很多很多相关的源码解析了。
它的源码好看,易读,清晰,所以今天我准备从设计模式的角度再来读一遍 OkHttp的源码。
主要内...[2021/3/24]