移动开发
文章平均质量分 59
群鸿
多年一线开发岗位编程,涉足移动平台开发(iOS/Android)、桌面开发(macOS/Winform)、Java后端开发、前端开发以及APP逆向安全等相关技术,在线讲师,群鸿课堂创始人,信息系统项目管理师。
展开
-
让优秀的ActionSheet框架更自由一点,即支持数组传值
ActionSheet框架是iOS平台非常好用的一个弹框三方库,作者模拟类似微信的弹框效果,上手是非常方便的,相比系统提供的更扁平化一些,深得人心。原创 2021-12-10 11:49:09 · 1960 阅读 · 0 评论 -
iOS 13.0 之 presentViewController 模态全屏适配解决方案
在iOS 13.0 之前,模态显示视图默认是全屏,但是iOS 13.0 之后,默认是Sheet卡片样式的非全屏,即:之前,modalPresentationStyle值默认为:UIModalPresentationFullScreen;之后,modalPresentationStyle默认值为:UIModalPresentationAutomatic;解决方案:第一种:在每个方法中添加/修改控制器属性值modalPresentationStyle为UIModalPresentationF原创 2020-05-25 11:05:01 · 7925 阅读 · 1 评论 -
基于Android Studio 3.6.3 打包构建APK的两种配置方式
Android Studio 又更新了,界面和图标大大改变,性能方面也是逐渐成熟,不愧是Google大厂的亲儿子,在我们开发完项目之后,我们通常要把源代码打包构建成一个安装包文件,即xxx.apk,用于上传三方App分发平台,如应用宝市场、华为市场,也可以直接将此文件发给Android手机,直接安装,那么什么是apk文件,又如何通过Android Studio来构建生成apk文件呢?一、什么是APK文件?APK(全称:Android application package,Android应用程序..原创 2020-05-13 22:37:34 · 2979 阅读 · 1 评论 -
基于Xcode11创建自定义UIWindow手记
笔者最近更新Xcode 11.4,在创建项目之后发现多了苹果分屏技术,新增了SceneDelegate这个文件,另外AppDelegate文件结构也发生了变化,给人一种似曾相识又不同的感觉,总的来说之前熟悉的Window不再由AppDelegate管理,而是交给了SceneDelegate。如下图即可看出目录结构和info配置变化:简要介绍Application Scene Manif...原创 2020-04-12 21:23:40 · 1641 阅读 · 0 评论 -
Application.ActivityLifecycleCallbacks监听App进入前后台状态最佳实践
笔者最近在一款Android端App产品开发中,有这样一个需求:监听当前App的状态:处于前台,亦或是后台?产品需求:当用户点击当前播放视频进入后台,视频暂停,再次进入前台,首先获取服务器播放进度,然后更新本地视频播放进度,以此保证App端视频的同步。笔者在一番技术选型之后,决定使用 Application.ActivityLifecycleCallbacks 来处理,至于其原理和简述,读...原创 2020-01-23 01:56:20 · 2368 阅读 · 0 评论 -
Android端App开发之刘海屏手机全屏设置实践
笔者最近开发一款视频同步演示产品,主要功能是:多台手机设备在手机专卖店展台区同步播放宣传视频,即在任何时间打开任一台设备都要同步播放视频,达到宣传产品和整体化一的用户体验,原理即在服务器打开网页播放展示视频,循环播放同时把播放进度更新到数据库,客户端手机打开App先下载视频到本地,然后获取当前视频播放进度开始播放本地视频,从而达到媲美直播推流的效果,从效果来看视频进度参考方案完美绝杀直播推流方案。...原创 2020-01-04 16:49:27 · 4497 阅读 · 1 评论 -
基于 OkHttpUtils 之 GET、POST、PUT 三种网络请求方式示例
话不多说,开发Android App网络请求莫过OkHttpUtils方便快捷了,平时用的最多可能是get和post请求了,最近用到put,这里记录一下以便码友们参考。一、引入库:implementation 'com.google.code.gson:gson:2.8.6'implementation 'com.squareup.okhttp3:okhttp:3.8.1'imple...原创 2019-12-11 10:08:45 · 3632 阅读 · 0 评论 -
React Native 之 com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException
React Native 它是什么,它能做什么,这里就不赘述了,可参考官方资料:https://facebook.github.io/react-native/遇到问题:Android 真机无法运行,模拟器可正常运行;解决方案:1. 按照官方文档运行react-native run-android ,模拟器正常运行,真机(华为 4.0.3 系统),出现异常,如下图:2.原创 2016-12-01 12:14:49 · 12602 阅读 · 0 评论 -
Could not find class 'com.google.firebase.FirebaseOptions' 解决方案
背景交代:1,加入谷歌广告依赖;2,加入谷歌分析依赖;奇葩问题:1,模拟器正常运行(可能是采用了科学上网吧);2,真机报错提示:Could not find class 'com.google.firebase.FirebaseOptions', referenced from method com.google.firebase.FirebaseApp.如下图:原创 2016-11-23 12:32:27 · 4182 阅读 · 0 评论 -
关于Android项目中Socket通信的那点事
Socket方面的知识点,相关的资料,如博客、视频、教程、官方文档等举不胜举,这里就不再赘述一遍了,只是笔者近日对项目中遇到的一点问题和思考做个总结,确切的来说,是对其中一篇博客的批注和补充吧,因为按照该博客的描述,会出现一些问题,笔者测试良久,或许写出来对一些朋友会有参考价值。—前序程序员,我们绝不重复造轮子,所以关于Socket,请看这位朋友的原创技术博客:Android:这是原创 2017-09-12 23:16:30 · 2027 阅读 · 7 评论 -
关于UIPageControl 自定义样式定制的正确姿势
近来,项目中需要定制UIPageControl样式,目前知道的方式大概如下,这里简单概括:一、修改颜色,最简单的方式:_pageControl.pageIndicatorTintColor = [UIColor redColor];// 设置非选中页的圆点颜色_pageControl.currentPageIndicatorTintColor = [UIColor blueColor]; // ...原创 2018-04-04 10:32:16 · 8268 阅读 · 2 评论 -
Android平台下加载PDF文件方案解析
第一种方案:简单粗暴的采用第三方软件加载,也就是说不在当前APP内部打开,而是直接调用第三方APP去查阅PDF文件;参考核心代码如下:public void openPDFReader(int index) { if (dataList != null && dataList.size() > index) { CoverFlowData tempData = dataLis原创 2016-08-10 11:48:32 · 11675 阅读 · 5 评论 -
基于OAuth2.0协议的QQ第三方授权登录iOS代码分析
简要说明:授权登录已经成为注册方式里的主流,目前授权登录方式主要SSO跳转授权登录和OAuth2.0两种,前者好处无需用户再次输入密码就可以直接授权成功,但前提是必须用户手机端安装了该软件,比如QQ,后者的优势就是是否安装无关紧要,是一个HTML的页面呈现,麻烦就在于要输入用户名和密码,这就非常不爽了,但是有时候偏偏必须这么做,理由嘛,自行想想就好,接下来我们就看看如果利用OAuth2.0的方原创 2015-02-07 17:02:56 · 2797 阅读 · 0 评论 -
iOS8新特性Extension之Today插件的代码测试
Today 视图的中扩展被称为插件,用户可以通过插件快速访问当前重要的信息,具体好处这里给个链接,请自行阅读,这里不再赘述,由于是新特性,特地拿来做个demo做测试,毕竟看文章是不能真正领略其中的实现过程,事实证明,的确如此,笔者再测试期间就出现很多意外的问题,参考文章都是一笔带过,但是对于新手来说,这就是个麻烦,下面将一步一步实现一个today插件的测试demo,开动....第一步: 构建宿原创 2014-11-26 15:36:03 · 1633 阅读 · 0 评论 -
基于重力感应让UITableView随手机倾斜度而上下自动滚动
良好的用户体验是一款软件成功的关键,原创 2014-08-27 10:40:43 · 2117 阅读 · 0 评论 -
reason: 'Unknown key, "NSColor" in title text attributes dictionary
*** Assertion failure in NSDictionary *_UIRecordArgumentOfInvocationAtIndex(NSInvocation *, NSUInteger, BOOL)(), /SourceCache/UIKit/UIKit-2380.17/UIAppearance.m:1118Terminating app due to uncaught ex原创 2014-07-18 10:54:13 · 1914 阅读 · 0 评论 -
程序内部打开某个APP在AppStore的购买页面
无意间发现有些APP内部推荐APP原创 2014-06-16 00:34:10 · 2763 阅读 · 0 评论 -
Couldn't load jpush181 from loader dalvik.system.错误解决方案
采用Android Studio 开发Android版本的JPush 推送过程中,一切按照官方文档开发,最后出现了:Couldn't load jpush181 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/co这样一个error,经过查询可如下解决:1,选中Android2,原创 2015-09-28 20:59:46 · 3919 阅读 · 0 评论 -
知名三方库 RNCachingURLProtocol 之清除缓存方案
项目中如需缓存UIWebView浏览过的数据,简单说就是加载过的网页数据,在没有网络的情况下依然能查看,很显然就需要用到缓存机制,纵览各大技术平台,开源库,首选的恐怕就是这个库了,其它的就算了吧知名三方缓存库:RNCachingURLProtocol Github下载地址:https://github.com/rnapier/RNCachingURLProtocol 使用方法非常简单,原创 2017-11-07 20:26:12 · 1206 阅读 · 0 评论 -
解决 iPhone手机同时连接WiFi和3G/4G(蜂窝移动)的问题
头疼问题:近期有个项目涉及APP连接硬件,APP和硬件处于同一局域网,那么问题来了,APP在连接硬件的同时也要能上网,比如在地图上显示当前手机的位置,那么就需要外网来定位,如果此时APP既能连接硬件—WIFI模式,又能连接蜂窝移动—3G/4G模式,问题就迎刃而解了;解决方案:1,国内搜索,基本没有,过;2,翻墙国外搜索,一个台湾论坛发现方法,经测试可以;具体步骤原创 2016-06-27 12:20:38 · 15326 阅读 · 4 评论 -
OpenGL ES 屏幕截图之完整实例篇
摘要:最近做一个涂鸦类型的产品,其中用到了涂鸦截屏的功能,因为是OpenGL做的绘制,故不能直接用简单的UIKit方式通过上下文去截屏,传统代码:-(UIImage *)snapshotSingleView:(UIView *)view{ UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0); [v...原创 2018-11-29 11:09:15 · 2460 阅读 · 0 评论 -
关于发生以下错误:接收者尚未签署其中一份主协议的解决告示
最近在帮助朋友把一个带内购的APP转到另一个账号时,出现一个逆天的提示,关于转包的流程就不说吧,这个很简单,提示如下图:此刻我是蒙圈的,百度一番也没有什么文章之类的缓解我崩溃的内心,反正就是不清楚哪里有这个主协议,持续崩溃。 -----------------但,毕竟程序员是无底线的,解决如下---------------------------------------问题分析...原创 2018-08-27 15:02:12 · 1991 阅读 · 0 评论 -
关于NSImageView视图360度旋转动画在Mac OS 10.13版本失效问题的解析方案
笔者之前上线的一款 Mac App 在电脑升级系统10.13之后,发现一个诡异的现象,视图360度旋转失控了,这里记录下问题解决办法,毕竟问题还是有点棘手;升级10.13之前正常的旋转代码如下:#pragma mark- animation- (void)rotation{ CABasicAnimation *animation = [CABasicAnimation animati...原创 2018-07-14 02:56:47 · 1514 阅读 · 1 评论 -
《Android破解之北斗手机定位系统》之继续破解
前几日,看到一篇文章颇有意思的破解文章,便尝试亲手操刀试一试,文章来源:《 Android破解之北斗手机定位系统》,来源自:吾爱破解论坛,文章链接:http://www.52pojie.cn/forum.php?mod=viewthread&tid=385773,感兴趣的朋友可以速速围观,下面我要说明的是以下几点:工具:APK改之理(Apk IDE)http://www.onli...原创 2018-07-04 10:48:04 · 20655 阅读 · 1 评论 -
针对Android平台播放器开源库NiceVieoPlayer倍速的开发
Android平台的视频开源库可谓百花齐放,直接给出比较流行的几大框架github地址:https://github.com/search?l=Java&o=desc&q=ExoPlayer&s=stars&type=Repositories ,基本都是基于ExoPlayer、ijkplayer、MediaPlayer等库进一步的开发,这里不再赘述了,因为之前项目中...原创 2018-07-03 14:22:14 · 1957 阅读 · 1 评论 -
基于Android系统OTG功能下将U盘作为数据源的解决方案
一、问题来源目前市面上多数APP都是基于互联网来读取数据,展示界面,但若在无网络环境,如展厅、政府机构中大多都不连接外网,那么APP的数据只能以静态或内置的方式存储,这些数据(图片、Excel等文档、音视频等)无法刷新和更改,非常不方便后期维护更新;典型案例:某展厅有一台触摸屏(Android系统),提供该单位所管辖范围下的客户信息,一旦客户信息变更,那么就需要修改APP中的数据,问题来了,该数据...原创 2018-06-29 18:10:38 · 2439 阅读 · 0 评论 -
Realm for Android Studio 3.0+的环境配置解析
开发Android App的小伙伴们,在选择数据库框架的时候,Realm是必须了解的,它一个可以替代SQLite以及ORMlibraries的轻量级数据库,至于它的详细用法网上皆是,这里就不赘述了,注意说下笔者遇到的问题吧第一个问题:Realm在Android Studio 3 下配置报错配置官方文档:https://realm.io/docs/java/latest/,里面详细介绍了配置过程,如...原创 2018-07-03 17:49:13 · 2241 阅读 · 0 评论 -
优化微信小程序之九宫格布局方案
2018年了,时间过的真快,最近想扩展一下知识面,也顺便学习一下比较成熟的微信小程序开发平台,于是乎就操刀微信,抽空花了几天看完微信小程序的开放平台(https://mp.weixin.qq.com/debug/wxadoc/dev/index.html),看完简易教程、框架、组件和API,有点似曾相识燕归来的感觉,毕竟笔者游历iOS和Android平台多年,对HTML5也有所了解,感觉就是杂糅的...原创 2018-02-10 10:29:32 · 29694 阅读 · 14 评论 -
Android Studio工程中添加Admob广告条代码详解
前言:纵观国内的广告平台,比如多盟,万普,百度,腾讯,或者别的一些广告平台,真是应接不暇,但是具体接入那就自己判断了,经过一番折腾,最终还是选择了谷歌平台,理应是稳定,可靠,安全,收入颇高,但是登录网络有点问题,应该大家都懂吧,这里就不再赘述了,各自想办法吧;准备工作:1,首先你是Android开发者,或者至少会点Java编程基础;2,熟悉使用Android Studio(原创 2015-10-31 21:18:22 · 7281 阅读 · 0 评论 -
基于第三方微信授权登录的iOS代码分析
基于第三方微信授权登录的iOS代码分析原创 2014-09-22 13:40:05 · 18468 阅读 · 3 评论 -
快速解决” Checksum mismatch for expected: , actual: “ ,在SVN 提交时错误信息
写了一天的程序,到晚上提交SVN的时候,在传输的h原创 2014-05-04 20:21:25 · 15660 阅读 · 0 评论 -
Capturing 'self' strongly in this block is likely to lead to retain cycle 解决方案
笔者在使用AFNetworking作为第三方网络下载库时,遇到一个警告提示:原创 2014-04-16 00:59:13 · 1662 阅读 · 0 评论 -
Windows系统下安装 Android Studio 的步骤记录
1Windows环境下Android Studio v1.0安装教程:http://ask.android-studio.org/?/article/92更新 Gradle错误解决方法:http://www.cnblogs.com/neozhu/p/3525404.htmleg://mapboo\.gradle\wrapper3下载开发工具Andro原创 2015-12-30 11:30:38 · 683 阅读 · 0 评论 -
基于Swift语言开发微信、QQ和微博的SSO授权登录代码分析
前言Swift 语言,怎么说呢,有一种先接受后排斥,又欢迎的感觉,纵观国外大牛开源框架或项目演示,Swift几乎占据了多半,而国内虽然出现很多相关技术介绍和教程,但是在真正项目开发中使用的占据很少部分,原因一是目前熟练它的开发者并不多,二是版本不太稳定,还需要更成熟可靠的版本支持,但总之未来还是很有前景的,深有体会,不管是代码量还是编译效率,以及语言特性,现代性都优于Object-C,估计后续原创 2015-08-14 16:50:52 · 4224 阅读 · 0 评论 -
iOS开发趋势:Native与H5+JS 解决方案
支付宝红包火了,微信红包火了,作为开发者,敏感的就发现之前并不被看好的H5已经悄悄渗透进来,在原生(Native)代码中部分功能采用动态网页(HTML5+JavaScript)来实现,即保证了整体App的流畅度,又能及时推出一些活动和动态,目前主流App已经开始默认这种开发模式,未来的移动开发团队也需要H5的小伙伴加入进来了,实现动静结合,让页面更加灵活多变,接下来笔者就根据之前涉及到的项目经验来原创 2015-07-31 16:00:07 · 6760 阅读 · 1 评论 -
最佳实战:采用CocoaPods配置管理第三方库
书接上文(CocoaPods / Pod 安装简略步骤),在本地安装了CocoaPods之后,我们就开始配置工程和添加第三方库让pod管理,下面就进行实战操作,让pod配置变的如此简单(标注-红色为我们手动输入,黑色为命令行自己输出):第一步:验证是否pod安装成功ZPodsDemo mapboo$ pod --version0.38.2第二步:创建工程项目,和平时原创 2015-08-27 10:39:34 · 5765 阅读 · 2 评论 -
Xcode 7+ 和 iOS9 兼容那点事
1,Xcode 7 下载问题a 建议直接苹果官方网站下载,地址:https://developer.apple.com/downloads/ b. 可到笔者百度网盘(同步的是苹果官网下载的Xcode),地址:http://pan.baidu.com/s/1ymsUE%20Xcode2,HTTP请求问题xxx-info中加入如下key:NSAppTransportSec原创 2015-09-21 15:15:22 · 2404 阅读 · 0 评论 -
iOS 之版本号 Version / Build 分析与脚本自动化
概念:Version:在plist文件中的key是“CFBundleShortVersionString”,和AppStore上的版本号保持一致;Build:在plist中的key是“CFBundleVersion”,代表build的版本号,该值每次build之后都应该增加1;格式:Version: 程序版本号{主版本号.次版本号.维护号}Build:编译次数统计原创 2015-10-19 10:42:47 · 3477 阅读 · 0 评论 -
安卓应用App发布至各大平台汇总
应用汇:http://www.appchina.com/ 安智市场:http://www.anzhi.com/ 华为市场:http://appstore.huawei.com/ 百度市场:http://app.baidu.com/pass/center 蒲公英:http://www.pgyer.comN多网 :http://www.nduoa.com/develope原创 2015-10-31 10:44:31 · 16170 阅读 · 1 评论 -
Android Studio 中实现简单的定时器代码
需求:类似iOS中的NSTimer 定时器功能,开关控制随机几秒钟执行指定功能;平台:Android开发环境:Android Studio代码实现:一. 创建Handler对象和Runnable对象 Handler handler = new Handler(); Runnable runnable = new Runnable() { @Ov原创 2015-11-21 19:16:03 · 9440 阅读 · 0 评论