自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(484)
  • 资源 (1)
  • 收藏
  • 关注

原创 Andorid性能优化之traceview的使用

一、traceview的使用方式有2种方式这2种方式可以根据场景,去选择哪一种方式。最终效果是一样的通过手动埋点 Profile1.1、通过手动埋点。步骤1: 比如我们知道在点击一个按钮的时候,会有卡顿,那么就可以用//可以用以下代码测试你的代码。//开始埋点,“app”是最后生成的性能分析文件Debug.startMethodTracing("App");//埋点结束,期间start 到 stop 之间的代码,就是你要测试的代码范围Debug.stopMethodTraci

2020-05-20 21:27:09 124

原创 使用 Jetpack Security 在 Android 上进行数据加密

您是否尝试过对应用中的数据进行加密?作为开发者,您想要保护数据安全,并确保数据掌握在其合理使用者的手中。但是,大多数 Android 开发者没有专门的安全团队来帮助他们正确地加密应用数据。就算通过网络来搜索如何加密数据,您得到的答案也可能已经过时好几年了,找到的示例也难以保证准确性。Jetpack Security (JetSec) 加密库为 Files 和 SharedPreferences 对象的加密操作提供了抽象支持。该库使用了安全且运用广泛的密码学原语 (cryptographic primit

2020-05-20 21:03:20 391

原创 月薪不同的三人去面试,面试官问道:各自谈谈对 binder 的理解?

面试官提了一个问题,我们来看看 、 和 ️ 三位同学的表现如何吧自认为无所不知,水平已达应用开发天花板,目前月薪 10k面试官️:谈谈你对 binder 的理解A:binder 是用来跨进程通信的,可以分为 client、server、binder 驱动以及 service manager 四部分。面试官:一次拷贝原理知道吗?A:不太清楚,其实对应用开发来说,没必要知道的。面试官:好的,回去等通知吧938页面试宝典PDF。更多面试内容,面试专题,flutter视频 .

2020-05-19 21:20:01 327

原创 花费2年,字数超一万最佳总结教你Android多进程,微信微博都在用

目录前言 为什么要使用多进程? 为什么需要“跨进程通讯”? 跨进程通讯的方式有哪些? 使用AIDL实现一个多进程消息推送 实现思路 例子具体实现 知其然,知其所以然。 跨进程的回调接口 DeathRecipient 权限验证 根据不同进程,做不同的初始化工作 总结 结语为什么要使用多进程对于进程的概念,来到这里的都是编程修仙之人,就不再啰嗦了,相信大家倒着、跳着、躺着、各种姿势都能背出来。 相信很多同学在实际开发中,基本都不会去给app划分进程,而且,在Android中

2020-05-19 21:15:31 186

原创 阿里面试官问我:如何加载100M的图片却不撑爆内存?你会咋答?

还记得当年面试一个面试官问我怎么加载巨图才能不撑爆内存,我没回答上来,他说分片显示,我寻思特么分片能减少内存使用??现在可以打他脸了!内容扩展1.图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?2.内存中如果加载一张 500*500 的 png 高清图片.应该是占用多少的内存?3.Bitmap 如何处理大图,如一张 30M 的大图,如何预防 OOM?938页面试宝典PDF。更多面试内容,面试专题,flutter视频 全套,音视频从0到高手开发。私信我【666】免费获取.

2020-05-18 21:43:46 386

原创 Android开发之脚本替换PackageName

1 前言平时如果想要替换包名一般是在AS中右键Rename进行操作。但是如果遇到一份代码希望导出几种不同的包名(不是ApplicationId),并且代码还会持续更新,这时候就需要使用脚本在打包时自动导出成不同包名的apk。有的人会说直接可以在build.gradle里面的productFlavors里面设置,然后用placeHolder填充包名就行啦。 注意,这时候就要区分ApplicationId和PackageName了。ApplicationId,是在手机中标识唯一应用的id。(看起来就

2020-05-18 21:39:40 640

原创 终极组件化框架项目方案详解

前言本文所讲的组件化案例是基于自己开源的组件化框架项目github上地址github.com/HelloChenJi…其中即时通讯(Chat)模块是单独的项目github上地址github.com/HelloChenJi…1.什么是组件化?项目发展到一定阶段时,随着需求的增加以及频繁地变更,项目会越来越大,代码变得越来越臃肿,耦合会越来越多,开发效率也会降低,这个时候我们就需要对旧项目进行重构即模块的拆分,官方的说法就是组件化。2.为什么需要组件化和组件化带来的好处?1、 现在An

2020-05-18 21:34:04 342

原创 Android性能优化:APK瘦身方式大汇总

大家都知道开发中应用程序的性能是非常重要的,将直接影响用户的体验,但是性能优化是个老生常谈的问题,我们需要慢慢来,本篇文章将从如何减少APK的大小开始,来提升Android App的性能,这里只是列举了一些方式方法,读者可根据自身应用需要对自己的APK进行相应处理。用户经常会避免下载看起来太大的应用程序,尤其是在设备连接到2G和3G网络或付费网络的应用市场内部。这篇文章讲述如何减少您的应用程序APK的大小,以便使更多的用户下载您的应用程序。理解APK文件结构在讨论如何降低您的应用程序的大小之.

2020-05-18 21:18:37 561

转载 滴滴DoKit Android核心原理揭秘之函数耗时

技术背景在日常的开发过程中,App的性能和用户体验一直是我们关注的重点,尤其是对于大公司来说每天的日活都是千万或者上亿的量级。操作过程中的不流畅和卡顿将严重影响用户的体验,甚至可能面临卸载导致用户流失。在拉新成本居高不下的现阶段,每一个用户的流失对于我们来说都是直接的损失。所以想要留住用户就必须提升用户体验,那么流畅顺滑操作过程无卡顿就是我们最基本也是重要的一环。但是随着现在移动端App的业务功能越来越复杂,随之带来的代码量剧增。在几十万行的代码中难免会出现效率低下或者不符合开发规范的代码存在,传统的代

2020-05-17 22:16:51 338

原创 不要等到面试官问道线程、多线程和线程池,还在头疼啦! 唉!速看这篇

小编今天为大家带来了关于17道线程、多线程和线程池面试专题,对于这些东西,我花费一个月时间整理了一份983页的完整PDF核心知识点笔记,话不多说往下看↓↓↓;我不休息我还能学 ⊂(‘ω’⊂ )))Σ≡=─༄༅༄༅༄༅༄༅༄༅线程、多线程和线程池面试专题需要这一份983页的完整PDF核心知识点笔记的小伙伴。可以私信我【666】免费获取这份完整的核心知识点笔记。1、开启线程的三种方式?1)继承Thread类,重写run()方法,在run()方法体中编写要完成的任务 new Thread(.

2020-05-17 21:53:54 177

原创 Android性能优化 | 帧动画OOM?优化帧动画之SurfaceView逐帧解析

Android 提供了AnimationDrawable用于实现帧动画。在动画开始之前,所有帧的图片都被解析并占用内存,一旦动画较复杂帧数较多,在低配置手机上容易发生 OOM。即使不发生 OOM,也会对内存造成不小的压力。下面代码展示了一个帧数为4的帧动画:原生帧动画AnimationDrawable drawable = new AnimationDrawable();drawable.addFrame(getDrawable(R.drawable.frame1), frameDuration

2020-05-15 21:33:46 1241 1

转载 HashMap原理解析

HashMap 是我们使用频率最高的集合之一。它是用于映射(键值对)处理的数据类型。随着 JDK 版本的更新,JDK1.8 对 HashMap 底层的实现进行了优化,例如引入红黑树的数据结构。本文将深入探讨 HashMap 的结构实现和功能原理。基本特点HashMap 你应该也很熟悉。我在这就简单说一下它的基本特点,HashMap是基于哈希表的 Map 接口的实现。 允许 null 键和 null 值,最多只允许一条记录的键为 null,允许多条记录的值为 null。 不保证映射的顺序。

2020-05-15 21:11:15 183

转载 如何做到在子线程更新 UI?

一般来讲,子线程是不能更新 UI 的,如果在子线程更新 UI,会报错。但在某种情况下直接开启线程更新 UI 是不会报错的。比如,在 onCreate 方法中,直接开启子线程更新 UI,这样是不会报错的。override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) textView

2020-05-15 20:57:58 769 1

原创 Android 11 第二个开发者预览版发布,目前支持 Pixel 2/3/3a/4 系列刷机

今天,谷歌发布了Android 11的第二个开发者预览版。和此前发布的第一个预览版相同,该预览版也仅适用于开发人员,需要手动下载,目前支持Pixel 2/3/3a/4系列刷机。Android 11的第二个开发者预览版并没有引入任何突破性的新功能,很大程度上是首个预览版的维护升级版本。对此,谷歌研发副总裁 Dave Burke 表示:“它仍然是早期版本,但是您可以开始了解操作系统如何在此版本中实现新体验,从无缝5G连接到围绕着屏幕改进UI,再到更智能的键盘和更快的消息传递体验。”下面我们来看一下究竟有

2020-05-14 21:53:52 804

原创 Android面经:我的阿里春招之路分享,五面后终拿到Offer

最近正是许多朋友面试的旺季,在此分享一些之前整理的关于面试的干货,攒一波RP,回馈社会。阿里的面试一般采用电话面试的形式,笔者一共参加五轮面试,一面电话面试+在线编程,二面视频面试+在线编程,三面部门boss面试,四面交叉面,五面HR。在此分享五轮面试的大概问题吧,笔者是android岗开发,所问题型会更偏android。一面阿里的面试官都很和蔼。一面面试官听声音感觉应该是入职两三年的感觉。上来自我介绍后直接开始问android相关问题。大概问题如下:android中的dp、px、d..

2020-05-14 21:51:16 517

原创 小米架构师整理实战文档:Kotlin+Gradle+OpenCV+React Native

由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!整理了一份Android实战开发核心知识点大礼包。覆盖Kotlin从入门到进阶实战、Kotlin语法基础、类型系统与可空类型、类与面向对象编程、函数与函数式编程、集合类、泛型、文件I/O操作、正则表达式与多线程、使用Kotlin创建DSL、运算符重载与约定、元编程、注解与反射、Kotlin集成Spring Boot服务端开发、使用Kotlin进行Android开发、Gradle、OpenCV开发实战、Mat.

2020-05-14 20:59:54 476

原创 基于 Flutter+Dart 聊天实例 | Flutter 仿微信界面聊天室

1、项目介绍Flutter是目前比较流行的跨平台开发技术,凭借其出色的性能获得很多前端技术爱好者的关注,比如阿里闲鱼,美团,腾讯等大公司都有投入相关案例生产使用。flutter_chatroom项目是基于Flutter+Dart+chewie+photo_view+image_picker等技术开发的跨平台仿微信app聊天界面应用,实现了消息/表情发送、图片预览、长按菜单、红包/小视频/朋友圈等功能。2、技术框架使用技术:Flutter 1.12.13/Dart 2.7.0 视频组件:chew

2020-05-13 17:19:00 2229

转载 深入理解 RecyclerView 的缓存机制

使用 ScrollView 的时候,它的所有子 view 都会一次性被加载出来。而正确使用 RecyclerView 可以做到按需加载,按需绑定,并实现复用。本文主要分析 RecyclerView 缓存复用的原理。从缓存获取 ViewHolder 流程概览从缓存获取的大致流程如下图所示:说明:在创建 ViewHolder 之前,RecyclerView 会先从缓存中尝试获取是否有符合要求的 ViewHolder,详见 Recycler#tryGetViewHolderF...

2020-05-13 17:07:03 1545 2

转载 谈Android应用架构

谈到架构,想到的一定是MVC、MVP、MVVM这几个词了,然后对比一下它们的优缺点,接下来就是站队的时间了。常常写MVC,偶然见到了MVP,“嗯,真香~”。写久了MVP,又听说了MVVM,“嗯,真香~”。“真香”定律真是被用得淋漓尽致,此外还要喜新厌旧一番,使用MVVM的鄙视使用MVP的,使用MVP的又鄙视使用MVC的。架构,就在这样的鄙视链下,“螺旋”发展。让我们跟随历史的进程,看一看架构是如何进化进化再进化的吧!MVC——时代的创造者从我接触Android起,MVC所扮演的唯一角色就是告诉你不要

2020-05-13 17:01:54 412

原创 阿里架构师强烈推荐《数据结构与算法经典问题解析》(PDF文档)

前言:小编整理了一份数据结构与算法经典问题解析核心知识点。覆盖递归和回溯、链表、栈、队列、树、优先队列和堆、队列、优先队列和堆、并查集ADT、排序、选择算法(中位数)、散列、算法设计技术、分治算法、动态规划算法、杂谈等大量知识点。今天给大家推荐一份不错的数据结构与算法问答。文末查看获取方式!涵盖世界知名IT公司技术面试的程序设计问题及其解题思路解析IT顶尖企业(微软、谷歌、亚马逊、雅虎、脸谱、苹果、Adobe )的面试过程针对不同问题,提供多个具有不同复杂度的解决方法。兼顾自学教材和面试辅导的不

2020-05-12 22:03:22 1056 1

原创 滴滴DoKit Android核心原理揭秘之函数耗时

技术背景在日常的开发过程中,App的性能和用户体验一直是我们关注的重点,尤其是对于大公司来说每天的日活都是千万或者上亿的量级。操作过程中的不流畅和卡顿将严重影响用户的体验,甚至可能面临卸载导致用户流失。在拉新成本居高不下的现阶段,每一个用户的流失对于我们来说都是直接的损失。所以想要留住用户就必须提升用户体验,那么流畅顺滑操作过程无卡顿就是我们最基本也是重要的一环。但是随着现在移动端App的业务功能越来越复杂,随之带来的代码量剧增。在几十万行的代码中难免会出现效率低下或者不符合开发规范的代码存在,传统的代

2020-05-12 22:01:55 724

原创 Flutter 10天高仿大厂App及小技巧积累总结

最近,花了一些时间学习研究Flutter,完成了高仿大厂App项目(项目使用的接口都是来自线上真实App抓包而来,可以做到和线上项目相同的效果),也总结积累了一些小技巧和知识点,所以,在这里记录分享出来,也希望Flutter生态越来越好(flutter开发App效率真的很高,开发体验也是很好的 ????)。以下博文会分为3个部分概述:项目结构分析 项目功能详细概述(所用知识点) 小技巧积累总结项目结构分析其次,梳理下项目的目录结构,理解每个文件都是干什么的,我们先来看看一级目录,如...

2020-05-12 21:56:16 1346 1

转载 Android性能优化之布局优化实战

Android绘制原理手机渲染主要依赖于两个硬件:CPU和GPU,其中CPU主要负责计算显示内容,其中包括视图创建、布局计算、图片解码和文本绘制等。GPU主要负责栅格化(UI元素绘制到屏幕上),比如将Button、Bitmap拆分成不同的像素进行显示,最后完成绘制。手机上显示的文字就是先通过CPU换算成纹理后在交给GPU进行渲染。而图片的显示首先通过CPU进行计算,然后再加载到内存中,传给GPU进行渲染。我们都知道Android系统每隔16ms就会发出Vsync信号(具体是由RootViewIm

2020-05-12 20:23:14 364

原创 Flutter沉浸式透明状态栏|flutter自定义凸起BottomAppBar导航

前言如下图:状态栏是指android手机顶部显示手机状态信息的位置。android 自4.4开始新加入透明状态栏功能,状态栏可以自定义颜色背景,使titleBar能够和状态栏融为一体,增加沉浸感。如上图:Flutter状态栏默认为黑色半透明,那么如何去掉这个状态栏的黑色半透明背景色,让其和标题栏颜色一致,通栏沉浸式,实现如下图效果呢?首先需要在flutter项目目录下找到android主入口页面MainActivity.kt或MainActivity.java,判断一下版本号然后将状态栏颜

2020-05-11 19:52:47 1236

原创 从零开始的Flutter之旅: StatelessWidget

这次要展示的是什么是Flutter的Widget,即小部件;以及如何在Flutter中使用StatelessWidget,即无状态小部件。至于Flutter,通俗的讲是开发者可以通一套简单的代码来同时构建Android与IOS应用程序。特性小部件是Flutter应用程序的基本构建模块,每一个都是不可变的声明,也是用户界面的一部分。例如button,text,color以及布局所用到的padding等等。下面我们来看flutter_github中的一个实例。圈选中的item只有两个信息

2020-05-11 17:50:32 344

原创 【Flutter组件】仿抖音双击点赞弹出爱心效果(可连点)

效果简介仿抖音点赞手势,单击暂停,双击点赞,可连续点击添加多个爱心,特点如下全部效果为代码绘制(爱心图标来自Material Icon的图标) 套上在目标Widget外即可使用 提供单击与点赞的回调 建议复制代码使用,动画可按需修改 没有flutter之外的依赖项,可复制使用(懒得发pub)基本原理一个罩在child上的stack层,双击后根据坐标添加目标爱心Widget,爱心Widget在出现时会播放动画,用坐标作为key,动画结束后移除已经消失的爱心。全部代码什么都

2020-05-11 17:46:49 1596 2

转载 真正带你搞懂 RecyclerView 的缓存机制,再也不怕面试被虐了

前言RecyclerView大概是Android开发者接触最多的一个控件了,官方对其做了很好的封装抽象,使得它既灵活又好用,但是你真的了解它么?在它简单的使用方式之下着实是不简单,首先我们看一下官方对它的介绍:A flexible view for providing a limited window into a large data set.很简单,就一句话「为大量数据集提供一个有限的展示窗口的灵活视图」怎么展示大量的数据是个技术活,这些数据伴随着滚动逐渐展示在我们眼前,但是展示过的滚走

2020-05-10 22:20:36 495

原创 2020阿里、头条、腾讯、美团 Android最新经典面试题

一 阿里一面(4/8 21:17,电话,61 分 47 秒)自我介绍项目来历 MySQL 和 MongoDB 的区别 关系型数据库和非关系型数据库的区别,各自在什么情况下使用 为什么海量数据时适合用非关系型数据库 为什么研究生读的通信,而不是计算机 上过或自学过哪些计算机课程,对计算机网络挺熟悉的吧 对 HTTPS 有没有了解,有没有写过相关代码 老板有 2000 元给我和同学分钱,首先由我提出分钱方案。如果同学不同意,则总额变为 1000 元,并由同学提出分钱方案。如果这时我不同

2020-05-10 22:15:18 305

原创 这些年,我爬过的 Android 坑 | 持续更新

总结目录视图篇 如何理解非主线程可以更新UI dialogFragment 全屏时左右留空的解决方案 dialogFragment 全屏时状态栏出现黑色布局的解决方案 dialogFragment 全屏时状态栏出现黑色布局的解决方案 recyclerview 调用 notifyItemRemoved 方法移除某个 Item 之后因为引用 position 引起 crash 的原因 recyclerview 局部刷新Item时会因为默认动画导致闪烁的解决方案 recyclerv

2020-05-10 21:43:12 2734

转载 Flutter 在哈啰出行 B 端创新业务的实践

时间线Flutter 在我们团队的起步算是比较晚的,直到 Flutter 要出 1.0 版本前夕才开始实践。大概的时间线如下:2018 年 11 月初,在 B 端小范围尝试接入 Flutter; 2018 年 12 月 5 日,Flutter 发布了 1.0; 2019 年 4 月中旬,开始大范围使用; 2019 年 6 月中旬,Flutter 在业务上的效率提升效果开始体现出来; 2019 年 7 月中旬,我所在的业务线的 B 端基本上全员转 Flutter 进行移动端开发; 202

2020-05-09 22:05:14 446

原创 为何大厂APP如微信、支付宝、淘宝、手Q等只适配了armeabi-v7a/armeabi?

前言前几天啊,在公众号发了一篇文章《优化ApK大小之ABI Filters 和 APK split》,评论区收到了一些留言说,文章讲得不够深入,关于系统是如何选择不同abi下的so库的?当前APP该如何适配?该去掉哪些该保留哪些?都存在一些疑问。因此,决定亲自更文一篇,系统地讲一下关于Android CPU架构方面的一些东西,以及结合大厂APP如微信、支付宝、淘宝等APP的适配情况,分析我们开发APP中该如何适配。本文涉及以下几个问题: 什么是ABI? ABI有何作用?

2020-05-09 21:57:43 508

原创 Android面经分享,失业两个月,五一节前拿到offer

基本介绍疫情期间,我被裁了。从3月初开始复习,准备面试题。复习的资料主要为《Android开发艺术探索》,还有就是网上的其他博客资料。首先介绍一下自己基本情况:渣本毕业快4年,一直在小厂摸鱼混日子,学历和简历背景不是很好看,所以面试邀约也不是很多,面试也到处碰壁。从3月中旬开始面试,一直到4月底。共面试9家公司,近20轮面试,拿到2个小公司和1个上市公司(不是出名的公司)的offer,最后准备去上市公司了。也投递了BAT、360、抖音、快手、平安等大厂的岗位,不过大部分没给面试机会,少数大厂在后续面

2020-05-09 21:47:12 458 1

转载 Android设计模式——适配器模式

适配器模式:把一个类的接口转换为客户端所期待的另一种接口,从而使原本因接口不匹配而无法再一起工作的两个类能够在一起工作。又称为:转化器模式、变压器模式或包装模式。做过Android Ap开发的朋友一般情况下都会用到Google提供的BaseAdapter适配器做扩展,用来填充ListView、GridView等窗口控件。用过的朋友都会觉得很简单很方便就可以对控件做一个数据源。而BaseAdapter正是一个适配器,Google考虑到适配器的一个特性则可以如此概括用“既有内容”去实现“需...

2020-05-08 21:49:44 211

转载 自定义View仿支付宝芝麻信用分仪表盘效果

前言灵感来自几天前看到一位作者的仿芝麻信用自定义View的文章很不错,所以我换了一种方式来进行实现,写了旧版和新版芝麻信用分仪表盘的效果。Github地址:https://github.com/HotBitmapGG/CreditSesameRingView截图这是我做的效果,还是有点差距的,嘿嘿。正文芝麻信用分的实现首先初始化各种画笔,默认的size,padding,小圆点.(因为实在找不到原版芝麻信用的带点模糊效果的小圆点,所以只好用这个代替)//...

2020-05-08 21:43:49 1455

原创 Android开发各大一线大厂(小米,百度,华为,360等),常见面试题汇集含答案

前言前一段时间和一些大牛们交流了一下,据反馈现在Android岗位也没有以前那么多了,没这么好找了,寒冬季节,大量公司模仿O2O模式导致死掉企业的很多,导致供大于求,当然这不意味着饱和,只是市场更趋于合理一些(只要技术好不用怕的)。最近结合一些面试的同学和大牛们反馈,我们通过网友分享在牛客网面试经历,整理了网友阿里、腾讯、百度、京东等面试题目。希望对大家有所帮助,后期会不断更新添加新的面...

2020-05-08 16:29:31 438

原创 华为十年资深架构师推荐最强Android 架构剖析文档

本文通过实验而不是源码 Android 系统层层拆解 令读者深刻透彻地掌握 Android 系统的内部技术;以init进程为切入点详细阐述了 Android 的启动过程和关键服务;从 Android 作为资源协调者和服务提供者的角度,重点分析了 servicemanager和 system_server 这两个进程。同时,作者比较了 Linux与Android 系统的区别,并对 Android 安...

2020-05-07 21:16:23 382

原创 Android调试神器stetho使用详解和改造

概述stetho是Facebook开源的一个Android调试工具,项目地址:facebook/stetho 通过Stetho,开发者可以使用chrome的inspect功能,对Android应用进行调试和查看。 功能概述stetho提供的功能主要有:Network Inspection:网络抓包,如果你使用的是当前流行的OkHttp或者Android自带的 HttpURLConn...

2020-05-07 21:12:37 668

原创 且听穿林打叶声———Ashmem机制讲解

在Android平台上,提供了一种共享内存的机制——Ashmem。该机制内部其实复用了Linux的共享内存机制。Ashmem机制使用linux的mmap系统调用,可以将同一段物理内存映射到不同进程各自的虚拟地址空间,从而实现高效的进程间共享。大家都知道,在linux上“一切皆文件”,一块共享内存当然也不例外。因此,在用户态,我们能看到的重要概念就是共享内存的“文件描述符”,文件描述符可以对应一...

2020-05-07 18:01:48 401

原创 Android按钮单击事件的五种实现方式

匿名内部类作为事件监听器 public class MainActivity extends Activity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc...

2020-05-07 17:39:29 260

转载 摆脱主机环境限制,随心所欲编译Android源码

本文源代码详见 https://github.com/Tinker-S/docker-android-build使用docker编译aosp源码google官方推荐的安卓编译源码为14.04,由于目前的工作环境为macosx环境或者高版本的ubuntu环境,直接在本机编译会有很多问题,不过借助docker这个强大的工具可解决这个烦恼安装dockergoogle搜索安装方法即可docker...

2020-05-06 20:23:30 232

c++ 面试题库.pdf

一、C 和C++的特点与区别? 参考答案: 答:(1) C语言特点: 1)作为- 种面向过程的结构化语言,易于调试和维护; 2)表现能力和处理能力极强,可以直接访问内存的物理地址; 3)C语言实现了对硬件的编程操作,也适合于应用软件的开发; 4) C语言还具有效率高,可移植性强等特点。 (2) C++语言特点: 1) 在C语言的基础上进行扩充和完善,使C+t兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言; 2)可以使用抽象数据类型进行基于对象的编程; 3)可以使用多继承、多态进行面向对象的编程; 4)可以担负起以模版为特征的泛型化编程。

2020-03-21

空空如也

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

TA关注的人

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