自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JoeySheng的专栏-移动互联网技术发展博客

关于移动互联网开发,Android、iOS、移动Web等技术。

  • 博客(94)
  • 资源 (6)
  • 收藏
  • 关注

原创 SSL cert chain validation (platform fallback) not working with (domain) network security config(xml)

在Android平台,当我们使用HTTPs(SSL)进行网络请求的时候,需要配置network_security_config.xml,如果我们在一个或者多个domain-config节点中配置网络安全属性,例如cert pinning,系统的SSL校验程序(verity_cert_chain_platform_specific)就会爆出JNI异常(CertificateException)。下面是一个network_security_config示例<network-security-conf

2020-10-30 15:48:32 2193

原创 记录解决java.security.cert.CertificateException 问题过程

团队在开发过程中,突然发现有一个业务失常

2020-10-30 15:11:59 6537 1

原创 Android性能优化之内存优化

1. 内存优化   Android系统对每个软件所能使用的RAM空间进行了限制,同时Java语言本身比较消耗内存,dalvik虚拟机也要占用一定的内存空间,所以合理使用内存,彰显出一个程序员的素质和技能。1) 了解JIT   即时编译(Just-in-time Compilation,JIT),又称动态转译(Dynamic Translation),是一种通过在运行时将字节码翻译为机器

2017-11-16 17:00:39 521

原创 Android性能优化之Android安装包大小优化

随着应用业务功能的日益复杂,使用的第三方库和SDK也会日益增加,这样导致的直接后果就是安装包的体积日渐增加,除了使用插件化的手段,减少安装包的体积,我们还可以从以下几个方面着手,进行安装包大小的优化。  代码混淆  ProGuard是一个开源的Java代码混淆器,并且默认集成到Android SDK中,它具有以下功能:  压缩:移除无效的类、属性、方法等。  优化:移除没用的结

2017-11-14 14:48:04 977

转载 HTTP 2.0与HTTP 1.1的区别

1、什么是HTTP 2.0HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),是HTTP协议的的第二个主要版本,使用于万维网。HTTP/2是HTTP协议自1999年HTTP 1.1发布后的首个更新,主要基于SPDY协议(是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验)。 2、与HTTP 1.1相比,主要区别包括

2017-11-13 11:03:47 572

转载 Android 8.0新特性及开发指南

一、通知渠道 — Notification Channels通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对不同种类的通知进行精细控制,用户可以单独拦截或更改每个渠道的行为,而不是统一管理应用的所有通知。开发指南创建通知渠道的步骤:1、创建 NotificationChannel 对象,并设置应用内唯一的通知 ID。2、配置通知渠道的属性,比如提

2017-11-10 10:57:29 470

转载 Android组件化方案

http://blog.csdn.net/guiying712/article/details/55213884 ,本文出自:【张华洋的博客】Android组件化项目地址:Android组件化项目AndroidModulePatternAndroid组件化之终极方案地址:http://blog.csdn.net/guiying712/article/details/78057120

2017-11-06 16:06:27 408

原创 Android自动化测试方法(一)

1.Monkeyhttp://developer.android.com/intl/zh-cn/tools/help/monkey.html这个工具很简单,主要用来做压力测试。输入如下命令,可以用来查看用法。adb shell monkey -help举个简单的例子,如果想测试自己开发的应用,可以输入如下命令:adb shell monkey -p 你想测试的应用包名 -v 5

2017-04-25 17:12:23 612

转载 你应该知道的一些Android ADB 命令

一、设备相关1、adb devices显示连接到计算机的设备List of devices attachedbe34d81e device输出格式为 [serialNumber] [state],state 有如下几种:列名解释nodevice没有设备/模拟器连接offline表示设备未连接成功或无响应。

2017-04-06 09:20:11 602 1

原创 如何在Mac下编译C++文件为可执行文件

1.新建程序使用vim新建一个C++程序,如test.cpp,编辑C++代码,如下,保存退出 1 #include 2 using namespace std; 3 4 int main(){ 5 cout<<"Hello World!"<<endl; 6 return 0; 7 }2.编译程序使用g++命令来编译C

2017-03-24 16:18:55 10160

原创 调用JNI函数

写在最前面在上一篇博客中,讲解了JNI的运行方式以及Java中调用C函数的步骤,本篇博客将讲解在由C语言编写的JNI本地函数中如何控制Java端的代码,主要包括以下内容创建Java对象访问类静态成员域调用类的静态方法访问Java对象的成员变量访问Java对象的方法调用JNI函数的示例程序在开始之前,我们先大致看一下示例程序的整体架构。整个示例程序由JniFuncMa

2017-03-24 14:29:56 444

原创 Java中调用C库函数

写在最前面Java中调用C库函数,依赖JNI,本文使用一个非常简单的例子来说明JNI开发流程,具体步骤如下:第一步:编写Java代码第二步:编译Java代码第三步:生成C语言头文件第四步:编写C代码第五步:生成C共享库第六步:运行Java程序注:本文中将仅在Java代码中声明的方法称为本地方法,使用C/C++实现的函数称为本地函数。第一步:编写Java代

2017-03-24 10:30:20 9464 2

转载 《视频直播技术详解》系列之八:直播云 SDK 性能测试模型

七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。本系列文章大纲如下:(一)开篇(二)采

2017-02-16 17:34:08 526

转载 《视频直播技术详解》系列之七:现代播放器原理

七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。本系列文章大纲如下:(一)开篇(二)采集

2017-02-16 17:33:28 734

转载 《视频直播技术详解》系列之六:延迟优化

七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。本系列文章大纲如下:(一)开篇(二)采

2017-02-16 17:32:41 465

转载 《视频直播技术详解》系列之五:推流和传输

七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。本系列文章大纲如下:(一)开篇(二)采集(三)处理

2017-02-16 17:31:31 1263

转载 《视频直播技术详解》之(四):编码和封装

七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。本系列文章大纲如下:(一)开篇(二)采

2017-02-16 17:30:29 1194

转载 《视频直播技术详解》系列之三:处理

七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们将用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。本系列文章大纲如下:(一)开篇(二)采集(三

2017-02-16 17:27:15 821

转载 《视频直播技术详解》系列之二:采集

七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们将用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。本系列文章大纲如下:(一)开篇(二)采集

2017-02-16 17:22:56 678

转载 《视频直播技术详解》系列之一:开篇

此系列为七牛云的原创,仅转载备份,以供查看。随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革。手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域的关注,吸引了很多互联网创业者或者成熟企业进入该领域。七牛云作为一家以基础服务能力见长的云计算公司,于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多

2017-02-16 17:20:17 630

转载 JVM内存管理及GC机制

本文转载,多谢原作者。原文地址一、概述JavaGC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。经过这么长时间的发展,Java GC机制已经日臻完善,几乎可以自动的为我们做绝大多数的事情。虽然ja

2017-02-16 15:56:48 356

原创 Android面试题(一)

Android面试题

2017-02-08 14:18:24 462

转载 React Native在现有项目中的使用

React Native在现有项目中的使用http://www.cnblogs.com/mfc-itblog/p/5680963.html

2016-11-04 17:18:45 381

转载 集成ReactNative过程中的那些坑

http://blog.csdn.net/guxiao1201/article/details/50899115

2016-10-25 11:47:01 323

原创 mac终端显示和隐藏隐藏文件的命令

defaults write com.apple.finder AppleShowAllFiles -bool true; killall Finder //显示隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool false; killall Finder //隐藏隐藏文件

2016-10-18 14:00:31 1295

原创 Webstorm注册,激活,破解

最近切入Webstorm开发js,下载最新版的Webstorm,出现激活不了的问题,也尝试了网络上广大网友提供的一些方法,仍然没有解决激活问题。终于找到一个网址,里面提供了License server,记录如下选择 License server (2016.6.21更新)http://121.42.190.89:1025  (2016.7.28更新)http://idea.

2016-10-17 09:50:46 507

转载 React-Native之flexbox布局

这篇博客稍微讲解下React-Native中的布局。比较简单。RN的而布局是用css中的flexbox布局,所以布局起来与Android传统的布局样式有点像。接下来就结合图片一起来看看。常用属性讲解RN的flexbox主要有以下几个属性alignItems,alignSelf,flex,flexDirection,flexWrap,justifyContent。flexDirectio

2016-10-12 21:56:53 397

转载 HLS协议

视频直播这么火,再不学就 out 了。为了紧跟潮流,本文将向大家介绍一下视频直播中的基本流程和主要的技术点,包括但不限于前端技术。1. H5 到底能不能做视频直播?当然可以, H5 火了这么久,涵盖了各个方面的技术。对于视频录制,可以使用强大的 webRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的技术,缺点是

2016-09-28 10:23:38 1371

转载 Android aar打包碰到的问题

一、为什么使用aar打包,而不是jar    jar打包只打源代码,像资源文件不会打包,而aar恰恰相反,它会把代码合资源统统打包进一个文件二、资源命名问题资源命名最好统统加上你的项目名字前缀,比如图片资源、string、color、dimens、layout等等,反正res目录下所有文件最好都使用统一的加前缀命名,防止跟宿主app下的资源重复,因为aar引用跟源码引用起到的效果一样一

2016-09-22 17:12:49 1562 1

转载 架构漫谈(九):理清技术、业务和架构的关系

原文地址:http://kb.cnblogs.com/page/543110/某天和朋友吃饭正好聊到这个话题。作为架构师或者做技术的人,在开发软件时,我们基本上就是在扮演上帝的角色:我们不但要创建出一个个的程序,还要让这些程序能够脱离我们在硬件上独立运行,以便为这个程序所服务的群体提供服务。当这个程序出现问题甚至bug的时候,我们还得扮演牧师的角色去修复这些问题。这不正是一个程序的社会吗?

2016-09-06 12:10:42 390

转载 架构漫谈(八):从架构的角度看如何写好代码

原文地址:http://kb.cnblogs.com/page/542725/在第六篇文章中,我们得出一个结论,软件架构实际上包括了:代码架构,以及承载代码运行的硬件部署架构。实际上,硬件部署架构最终还是由代码的架构来决定。因为代码架构不合理,是无法把一个运行单元分拆出多个来的,那么硬件架构能分拆的就非常的有限,整个系统最终很难长的更大。  所以我们经常会听说,重写代码,推翻原有架构,

2016-09-06 12:09:47 401

转载 架构漫谈(七):不要空设架构师这个职位,给他实权

原文地址:http://kb.cnblogs.com/page/542257/什么是架构师  在之前的几篇文章中,经常会提到架构师这个词。我们已经定义了什么叫架构,那怎么定义架构师呢,是不是做架构的就叫架构师了? 没有这么简单,本篇尝试讨论一下这个问题。  架构师的前提条件  如果一个人在工作中,只是致力于完成自己的工作,以做好自己的工作为主要目标,那么最多只能成为一个工匠,无

2016-09-06 12:08:42 397

转载 架构漫谈(六):软件架构到底是要解决什么问题?

原文地址:http://kb.cnblogs.com/page/541740/前一篇文章简述了什么是软件。那么什么是软件架构呢?按照惯例,我们来看看是什么问题,是谁的问题。  要解决谁的问题?  如前所述,软件实际上就是把现实生活模拟到计算机中,并且软件是需要在计算机的硬件中运行起来的。要做到这一点需要解决两个问题:  一、业务问题  具体的现实生活状态下,没有软件的时候,

2016-09-06 12:07:50 503

转载 架构漫谈(五):什么是软件

原文地址:http://kb.cnblogs.com/page/541188/前面通过四篇文章,把什么是架构,如何做好架构等必要的概念澄清了一下。这些概念对于在各种不同的领域都应该也是有用的,需要读者自行思考,并应用到自己所在的领域中。在这篇文章开始,我们用同样的思考,来看看软件是怎么回事,以及如何运用架构思维,更好的设计和实现软件。  冯诺依曼结构,图灵机,以模拟人为目标  软件的历

2016-09-06 12:06:43 412

转载 架构漫谈(四):如何做好架构之架构切分

原文地址:http://kb.cnblogs.com/page/540705/前一篇已经讲了如何识别问题。在识别出是谁的问题之后,会发现,在大部分情况下,问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。  切分就是利益

2016-09-06 12:05:01 565

转载 架构漫谈(三):如何做好架构之识别问题

原文地址:http://kb.cnblogs.com/page/540096/按照之前架构的定义,做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决80%了。这个能力基本上就决定了架构师的水平。  那么面对问题有哪些困难呢?  我们先看一则笑话。女主人公:老公,把袋子里的土豆切一半下锅。结果老公是把袋子里的每个土豆都削了一半,然后下锅。

2016-09-06 12:02:47 371

转载 架构漫谈(二):认识概念是理解架构的基础

原文地址:http://kb.cnblogs.com/page/539838/在前一篇文章中,我们讨论了什么是架构。事实上,这些基础概念对于做架构是非常重要的,大部分人对于每天都习以为常的概念,都自以为明白了,但实际上都是下意识的,并不是主动的认识。比如说“什么是桌子?”,做培训的时候,我经常拿这个例子来问大家,回答千奇百怪。这实际上就导致了做架构的时候,不同角色的沟通会出很多问题,那么结果也

2016-09-06 12:01:40 352

转载 架构漫谈(一):什么是架构?

架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。专栏的目的是希望能抛出一些观点,并引发大家思考,如果你有感触或者新的感悟,欢迎联系专栏负责人Gary(微信greenguolei)深聊。

2016-09-06 11:59:11 372

转载 架构的本质

本文作者王庆友,前 1号店首席架构师,先后就职于 ebay、腾讯、1号店、找钢网,精通电商业务,擅长复杂系统业务建模和架构分析,目前在中国 B2B 第一电商公司找钢网担任首席架构师,微信号Brucetwins,欢迎一起聊架构。

2016-09-06 11:55:11 344

转载 每个架构师都应该研究下康威定律

这篇文章的分享者杨波具有超过10年的互联网分布式系统研发和架构经验,曾先后就职于 eBay 中国研发中心(eBay CDC)、携程、唯品会(VIPShop)等。本文由攀爬的蜗牛以及田光整理。

2016-09-06 11:47:47 745

使用Go语言实现的简易计算器

使用Go语言实现的简易计算器

2016-08-05

Android动态加载插件apk

Android动态加载插件apk模版工程

2016-08-03

Android表情面板简单实现

Android表情面板的简单实现

2016-08-01

Stomp over websocket for android

Android WebSocket并没有原生的支持,所以那些第三方库如雨后春笋的出现了,那些就不举例了,这里就把一些最简单的开源的东西整合到一起,并且加入了对STOMP的支持,这里命名为cn.fullstacks.websocket

2016-07-20

混淆打包Android library工程的混淆配置文件

混淆打包Android library工程的混淆配置文件

2016-07-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除