Android内核学习笔记—Binder分析
进程间通信——Binder 概述 Binder是Android中使用最广泛的IPC机制。如果统观Binder中的各个组成元素,就会惊奇地发现它和TCP/IP网络有很多相似之处: .Binder驱动——路由器 .Service Manager——DNS .Binder Client——客户端 .Binder Server——服务器 Service...
View ArticleAndroid WebView简要介绍和学习计划
我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新。在4.4版本之前,Android WebView基于WebKit实现。不过,在4.4版本之后,Android WebView就换成基于Chromium的实现了。基于Chromium实现,使得WebView可以更快更流畅地显示网页。本文接下来就介绍Android...
View ArticleAndroid WebView加载Chromium动态库的过程分析
Chromium动态库的体积比较大,有27M左右,其中程序段和数据段分别占据25.65M和1.35M。如果按照通常方式加载Chromium动态库,那么当有N个正在运行的App使用WebView时,系统需要为Chromium动态库分配的内存为(25.65 + N x...
View ArticleAndroid WebView执行GPU命令的过程分析
Android WebView使用的Chromium引擎,虽然没有自己的GPU进程或者线程,但是却可以执行GPU命令。原来,Android WebView会给它提供一个In-Process Command Buffer GL接口。通过这个接口,Chromium引擎就可以将GPU命令提交给App的Render Thread执行。本文接下来就详细分析Android...
View ArticleAndroid WebView硬件加速渲染网页UI的过程分析
Android WebView作为App UI的一部分,当App UI以硬件加速方式渲染时,它也是以硬件加速方式渲染的。Android WebView的UI来自于网页,是通过Chromium渲染的。Chromium渲染网页UI的机制与Android App渲染UI的机制是不一样的。不过,它们会一起协作完成网页UI的渲染。本文接下来就详细分析Android...
View Articlegtest实战练习
在上面一篇博客中已经介绍了关于gtest的一些基本的用法,gtest的介绍和使用。今天主要是对gtest的熟练掌握做的一个实战练习。 在实战练习之前先来在学习一个gtest的用法–>gtest的参数化。...
View Article连猴子都能看懂的 IOS 国际化(本地化)教程
语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。苹果设备遍布全球,往往一个应用要供给全世界各个范围内的人群使用。这时,做好应用的国际化就显得尤为重要! 本篇博文旨在让所有 IOS 开发者都能快速上手国际化方案,以图文形式展示,简单易懂,自己亲自成功实践过。下面详细解说: 配置需要国际化的语言...
View ArticleXcode 中的 debug 与 release 以及 skipping input stream 0 0 0x0 问题解决
Xcode生成的程序分为 debug 和 release 版本,总结一下,他们之间的主要区别在于:debug包含更多程序信息,面向开发者。release包含少量程序信息,app体积较小,且对性能进行了优化,面向用户。 网上还给出了两者的不同点包括,release 版本无法打断点,发现能否打断点主要有下面的选项决定: 不管是 Debug 还是 Release,只要选择了“Debug...
View ArticleUnity3D备忘录(二)纹理导入设置
Unity3D中,纹理占据着很重要的位置,包括模型的贴图,UI的精灵等都需要使用纹理。而如何导入纹理,该怎样设置,变成了一个很重要的问题。 前一篇Unity3D备忘录(一)模型导入设置介绍了Unity3D中的模型导入设置,本文继续介绍U3D中纹理的导入设置。 (注:U3D版本5.6.1f1) 如图所示,U3D中纹理的类型分为以上8种(Advanced这种类型已经被淹没在历史的尘埃里了)。...
View ArticleAndroid-把Android Studio改为Eclipse项目结构
/**配置gradle android插件库, jar aar中央仓库************/ buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' } } allprojects { repositories { jcenter() } }...
View ArticleiOS中的crash防护(四)NSNotificationCenter指定线程接收通知
这篇文章本来是要写NSNotificationCenter造成的 crash的防护方案的,但是分析总结出来发现有两点:(1) NSNotificationCenter添加或者移除通知的时候不存在像KVO出现的重复添加或者重复移除的情况(苹果内部已经进行了处理,不需要开发者进行处理了)。(2)...
View Articleandroid ndk 03 C语言 动态分配内存,字符串操作
动态分配内存,字符串操作 动态内存分配 在说动态内存分配之前先说下 静态内存分配 void main(){ //静态内存分派 int a[1024*1024*10];//申请10m //这样申请会提示堆栈溢出 } 堆内存 栈内存 下面代码 作用 每隔一秒申请40M 内存 看任务管理器 可以看到 别搞死机了,可以把free注释 打开 不过就看不到效果了 //堆内存 void heapFun(){...
View Article如何从MTK机器的NVRAM中获取WIFI mac地址
在MTK的机器中,如果不用特定的工具烧写MAC地址,在开机后打开WIFI后会显示: “NVRAM WARNING: Err=0x10”这就是没有烧写mac地址的原因,所以每次打开wifi,wifi的MAC地址都是一个随机产生的值,为什么会这样?答案在:...
View ArticleReact Native仿美团下拉菜单
在很多产品中都会涉及到下拉菜单选择功能,用的最好的当属美团了,其效果如下: 要实现上面的效果,在原生中比较好做,直接使用PopWindow组件即可。如果使用React Native开发上面的效果,需要注意几个问题: 1、 在下拉的时候有动画过度效果; 2、下拉菜单出现后点击菜单项,菜单项可选择,并触发对应的事件; 3、下拉菜单中的项目可以配置;...
View ArticleAndroid内核学习笔记—Binder分析
进程间通信——Binder 概述 Binder是Android中使用最广泛的IPC机制。如果统观Binder中的各个组成元素,就会惊奇地发现它和TCP/IP网络有很多相似之处: .Binder驱动——路由器 .Service Manager——DNS .Binder Client——客户端 .Binder Server——服务器 Service...
View Article2017最新App Store 审核指南中文版
简介App 正在改变世界,丰富人们的生活,并为像您一样的开发者提供前所未有的创新机会。因此,App Store 已成长为一个激动人心且充满活力的生态系统,正为数百万的开发者和超过十亿的用户提供服务。不管是开发新手,还是由经验丰富的程序员所组成的大型团队,我们都非常欢迎您为 App Store 创建 app,并希望能够帮助您了解我们的准则,以确保您的 app 能够快速通过审核流程。App Store...
View ArticleAndroid O 8.0 BroadcastReceiver 注册工具
关于 Android O 不出意外,为了控制 App 自动唤醒,Google 在新系统中又一次严格控制了 App 的后台行为,这一次在 Menifest 中注册的广播 Action 大部分都失效了。 为了方便在 8.0 上继续使用 Menifest 注册 Receiver,只能手动解析 Menifest 转为动态注册。所以顺手写了这么一个工具。 github 使用...
View Article