1 Globalizationa

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 17w+

iOS 关于监听手机截图,UIView生成UIImage, UIImage裁剪与压缩的总结

一. 关于监听手机截图1. 背景: 发现商品的售价页总是被人转发截图,为了方便用户添加截图分享的小功能首先要注册用户截屏操作的通知- (void)viewDidLoad { [super viewDidLoad]; //注册用户的截屏操作通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@se...

2020-10-20 15:21:06

iOS 多线程:『GCD』详尽总结

本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。这大概是史上最详细、清晰的关于 GCD 的详细讲解+总结的文章了。通过本文,您将了解到:1. GCD 简介2. GCD 任务和队列3. GCD 的使用步骤4. GCD 的基本使用(6种不同组合区别)5. GCD 线程间的通信6. GCD 的其他方法(栅栏方法:dispatch_barrier_async、延时执行方法:dispatch_after、一次性代码(只执行一次):dispatch_once、快速迭代方法:dispatch_...

2020-10-19 15:21:08

block本质探寻六之修改变量

说明:<1>阅读本文章,请参照前面的block文章加以理解;<2>本文的变量指的是auto类型的局部变量(包括实例对象);<3>ARC和MRC两种模式均适用;一、无法修改的原因//代码很明显,强行给age赋值会报错;void test1(){ int age = 10; block = ^{// age = 20; NSLog(@"%d", age); };}//打印2019...

2020-10-18 20:21:08

Android 程序结构

Android程序在创建时,Android Studio就为其构建了基本结构,设计者可以在此结构上开发应用程序,因此掌握Android程序结构是很有必要的。下面以HelloWorid程序为例,分析Android 程序结构:在图中,可以看到一个Android程序由多个文件以及文件夹组成,这些文件分别用于不同的功能,具体分析如下:manifests用于存放AndroidManifest xml文件(又称清单文件).该文件是整个项目的配置文件。在程序中定义的四大组件都需要在这个文件中注册,另外...

2020-10-17 20:21:09

Activity与DialogFragment交互的方法

今天我们来讨论一下如何在Activity与DialogFragment交互的方法,这里包括了DialogFragment的启动以及Activity方法的调用。DialogFragment与Dialog相比类似,是官方现在更建议使用的Dialog。DialogFragment的定义新建一个DialogFragment,该类继承DialogFragment。复写onCreateView()方法,在该方法中设置Dialog的布局。这个Dialog的布局可以完全自定义,可以包括任何常见的河自定义的控件...

2020-10-17 15:21:04

Android 离线人脸识别 ArcFace 2.0 Demo开发分享

环境要求 1、运行环境 armeabi-v7a 2、系统要求 Android 5.0 (API Level 21)及以上 3、开发环境 Android Studio下载地址:https://github.com/ArcsoftEscErd/ArcfaceDemo_AndroidSDK获取地址请戳这里快速上手 1、在src->main目录下新建文件夹jniLibs->armeabi-v7a,将libarcsoft_face.so和libarcso...

2020-10-17 08:20:06

Flutter项目之app升级方案

题接上篇的文章的项目,还是那个空货管理app。本篇文章用于讲解基于Flutter的app项目的升级方案。在我接触Flutter之前,做过一个比较失败的基于DCloud的HTML5+技术的app,做过几个RN项目。在这两种不同机制的app升级方案中,RN采用的是微软的CodePush技术。而那个比较失败的项目采用的是检查版本号,下载安装包的方法。而在这个Flutter项目中,我在写app更新方法时,查资料的时候查到一篇文章,文章大概意思讲解了一下Flutter实行CodePush的可能性。但是...

2020-10-16 20:21:08

iOS蓝牙开发(4.0)详解

最近由于项目需要, 一直在研究蓝牙4.0,在这儿分享给大家, 望共同进步.一、关于蓝牙开发的一些重要的理论概念:1.当前ios中开发蓝牙所运用的系统库是<CoreBluetooth/CoreBluetooth.h>。2.蓝牙外设必须为4.0及以上(2.0需要MFI认证),否则无法开发,蓝牙4.0设备因为低耗电,所以也叫做BLE。3.CoreBluetooth框架的核心其实是两个东西,peripheral和central, 可以理解成外设和中心,就是你的苹果手机就是中心,外部蓝牙...

2020-10-14 20:21:14

Android Navigation使用

简介Navigation导航编辑器旨在简化Android开发中导航的实现,可以帮助我们很好的处理Activity和fragment之间通过FragmentTransaction交互的复杂性,也可以很好的处理页面的转场效果;Deeplink的支持,绕过activity直接跳到fragment;并且传递参数更安全。在Android Studio3.2可以使用。基本使用引用相关依赖implementation "android.arch.navigation:navigation-fragmen...

2020-10-13 20:21:14

iOS/OSX漏洞分析和再现:CVE-2019-7286

iOS 12.1.4是2019年2月8日发布的iOS的最新版本。该版本修补了iOS上发现的四个漏洞。根据Project Zero的Ben Hawkes的推文,其中至少有两个0day还是处于在野状态……CVE-2019-7286在野外被开发利用该漏洞似乎具有严重的严重性,并且可能在重新启动后也可能用于维持持久性ZecOps能够重现此漏洞(下面的POC代码)该漏洞可用于将权限升级为root,作为iOS 12.1.3上越狱链的一部分。分析CVE-2019-7286根据Apple的描述:...

2020-10-12 15:21:04

android消息处理源码分析

一、简介消息处理机制主要涉及到这几个类:1.Looper2.MessageQueue3.Message4.Handler二、源码分析Looper.class的关键源码://保存Looper对象,在android中每创建一个消息队列,就有一个并且是唯一一个与之对应的Looper对象 static final ThreadLocal<Looper> sThreadLocal = new ThreadLocal<Looper>();//主线程的Looper...

2020-10-09 08:20:07

安卓开发笔记(三十三):Android仿写微信发现

首先我们来看看仿写之后的效果:看到是这个界面我们首先应该思考这些按钮是怎么做出来的?有了一个整体的思路之后才知道该怎么办。最开始我想的就直接利用button控件上面直接加上png的图片就可以形成一个按钮了,但当我加入图片之后,发现因为图片太大导致一个按钮都会占据一个屏幕一半的空间,实在是得不偿失,根本无法使用。如果直接利用button在上面添加图片,是不能够改变我们加入图片的大小的,虽然这是最简单的方法,但是缺陷比较多,如果实在先使用这种方法就必须自己将png图片的大小变小,但作为一个程序员还...

2020-10-06 15:21:10

Android 矢量图详解

官方文档关于 Vector,在官方开发指南中介绍。本文章是由个人翻译官方指南然后添加个人理解完成。由于个人精力有限,多个渠道发布,排版上可能会有问题,如果影响查看,请移步 Android 开发者家园Vector Drawables 概述VectorDrawable 和 AnimatedVectorDrawable 是在 Android 5.0 系统中第一次加入,当然我们可以使用 Android 的支持库,来支持旧的版本,通过 VectorDrawableCompat 和 Animat...

2020-10-05 20:21:10

Google IO 2019 Android 太长不看版

Google I/O 2019, 这里有个playlist是所有Android开发相关的session视频合集:Android & Play at Google I/O 2019当然啦每个视频都看不太现实了, 就挑几个看看吧.这里是我个人的一点笔记, 可以作为一个太长不看版, 感兴趣的点再自己了解下.CameraX更易用的API.隐藏底层细节.兼容各种设备.自动化测试套件.Android Studio UI design tools and Debugging Tools...

2020-10-04 15:21:07

Android 命名规范

刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间。如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很多。 在面试的时候,审核一个程序员的编程水平的时候,命名规...

2020-10-03 20:21:15

Android8.1 SystemUI源码分析之 电池时钟刷新

SystemUI源码分析相关文章Android8.1 SystemUI源码分析之 Notification流程分析之前再贴一下 StatusBar 相关类图电池图标刷新从上篇的分析得到电池图标对应的布局为 SystemUI\src\com\android\systemui\BatteryMeterView.java先从构造方法入手public BatteryMeterView(Context context, AttributeSet attrs, int defStyle) { ...

2020-10-02 20:21:11

直播技术简单介绍(非原创)

文章大纲一、视频直播原理介绍二、视频直播代码演示(Android)三、项目源码下载四、参考文章一、视频直播原理介绍1. 视频直播技术流程视频直播的流程可以分为如下几步:采集 —>处理—>编码和封装—>推流到服务器—>服务器流分发—>播放器流播放2. 采集采集是整个视频推流过程中的第一个环节,它从系统的采集设备中获取原始视频数据,将其输出到下一个环节。视频的采集涉及两方面数据的采集:音频采集和图像采集,它们分别对应两种完全...

2020-10-02 08:20:06

iOS-关于一些手势冲突问题(scrollView 嵌套 tableView)

简单说下关于开发中容易遇到的父试图添加手势与子试图点击事件冲突,UIScrollView 嵌套 UIScrollView 、 UIScrollView 嵌套 UITableView的情况手势冲突问题;点击冲突如果给现有的基于 UIView 的 xkTestView 上加一个点击手势 gestTap,然后在 xkTestView 中间区域添加一个 tableview,我们想响应 gestTap,同时也想响应 tableview 的 cell 点击代理事件,这时可以添加 gestTap 点击手势代...

2020-09-30 20:21:12

中文版 Apple 官方 Swift 教程《The Swift Programming Language》

简介欢迎使用 Swift关于 Swift版本兼容性Swift 初见Swift 版本历史记录Swift 教程基础部分基本运算符字符串和字符集合类型控制流函数闭包枚举类和结构体属性方法下标继承构造过程析构过程可选链错误处理类型转换嵌套类型扩展协议泛型自动引用计数内存安全访问控制高级运算符语言参考关于语言参考词法结构类型表达式语句声明特性模式泛型参数语法总结...

2020-09-29 20:21:10

iOS---------开发中 weak和assign的区别

weak和assign的区别-正确使用weak、assign一、区别1.修饰变量类型的区别weak只可以修饰对象。如果修饰基本数据类型,编译器会报错-“Property with ‘weak’ attribute must be of object type”。assign可修饰对象,和基本数据类型。当需要修饰对象类型时,MRC时代使用unsafe_unretained。当然,unsafe_unretained也可能产生野指针,所以它名字是"unsafe_”。2.是否产生野指针的区别...

2020-09-29 08:20:04

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。