导航:首页 > 源码编译 > 安卓源码智能指针

安卓源码智能指针

发布时间:2024-04-04 00:03:51

Ⅰ C11鏂扮壒镐т箣鏅鸿兘鎸囬拡

绋嫔簭閮芥槸鍦ㄥ爢涓婂瓨鍌ㄥ姩镐佸垎閰嶅硅薄锛岃屽畠镄勭敓瀛樻湡鏄鐢辩▼搴忔潵鎺у埗镄勚傝繖灏辨剰锻崇潃褰揿姩镐佸硅薄涓嶅啀浣跨敤镄勬椂鍊欙纴鎴戜滑闇瑕佹樉寮忕殑灏嗗畠阌姣併

c98鎻愬嚭浜嗕竴涓鏅鸿兘鎸囬拡auto_ptr涓轰简阆垮厤浜轰滑浣跨敤鎸囬拡镞跺缮璁伴喷鏀惧唴瀛樸备絾鏄锲犱负auto_ptr镄勬绘荤己镣癸纴浣夸汉浠鍦ㄥ紑鍙戣繃绋嬬板埌浜嗗悇绉嶅潙锛屾墍浠ユ墠链変简c11鏂扮殑涓変釜鏅鸿兘鎸囬拡銆

绉诲姩璇涔夋槸c11鎻愬嚭镄勶纴c11链澶х殑鐗规у氨鏄𨰾ユ湁浜嗙Щ锷ㄨ屼笉鏄𨰾疯礉瀵硅薄镄勮兘锷涳纴杩椤氨澶у箙搴︾殑鎻愬崌浜嗘ц兘銆
涓轰简璁╄嚜瀹氢箟绫诲瀷镄勫硅薄涔熸敮鎸佺Щ锷ㄦ搷浣滐纴鎴戜滑涓哄畠瀹氢箟浜 绉诲姩鏋勯犲嚱鏁 绉诲姩璧嫔艰繍绠楃
绉诲姩鏋勯犲嚱鏁版槸瀵硅祫婧愯繘琛岀獌鍙栬屼笉鏄𨰾疯礉銆傚畠镄勭涓涓鍙傛暟鏄璇ョ被绫诲瀷镄勫彸鍊煎紩鐢锛岀Щ锷ㄦ瀯阃犲嚱鏁伴櫎浜嗗畬鎴愯祫婧愮Щ锷ㄥ栵纴杩桦繀椤讳缭璇佺Щ锷ㄤ箣钖庣殑铡熷硅薄澶勪簬 链夋晥镄勚佸彲鏋愭瀯 镄勭姸镐侊纸灏嗗师瀵硅薄鍊艰祴鍊肩粰鏂板硅薄锛岀劧钖庢妸铡熷硅薄灞炴у肩疆绌猴纴鐗瑰埆鏄鎸囬拡鎴愬憳缃绌猴紒闾d箞姝ゆ椂铡熷硅薄灏辨槸澶勪簬鍙鏋愭瀯镄勫畨鍏ㄧ姸镐侊级銆

鐪嬩简memory閲岀殑閮ㄥ垎婧愮爜锛屽彂鐜版湁涓涓鍦╟11涔嫔墠娌℃湁鍑虹幇杩囩殑鍏抽敭瀛梕xplict

链変简explict鍏抽敭瀛楃殑闄愬畾锛岄槻姝㈢被鏋勯犲嚱鏁拌繘琛岄殣寮忚浆鎹

瀹幂佹㈡嫹璐濊涔夛纴浣嗘槸鏄阃氲繃绉诲姩璇涔夛纸浠涔堟槸绉诲姩璇涔夛纻涓婇溃链夎В绛旓级𨱒ュ疄鐜扮殑銆傚畠钬滃敮涓钬濇嫢链夊畠镓鎸囩殑瀵硅薄銆
浠庝笅闱㈢殑unique_ptr镄勬瀯阃犲嚱鏁板氨鍙浠ュ彂鐜板畠鏄绂佹㈡嫹璐濊涔夌殑銆

浣嗘槸濡傛灉𨱍宠佸垏鎹㈡寚阍堢殑鎺у埗𨱒冿纴鍙浠ヤ娇鐢ㄤ笅闱㈢殑绉诲姩鏋勯犲嚱鏁版潵杩涜屾带鍒舵潈镄勮浆鍖栵纴杩欓噷鐢ㄥ埌forward杞鍙戯纸涓娄竴鑺傚彲浠ョ煡阆揻orward杞鍙戝彲浠ヨ繑锲炶ュ弬鏁版湰𨱒ュ瑰簲镄勭被鍨嬬殑寮旷敤锛夛纴鍏跺疄杩欓噷灏辨槸鎶婂彸鍊煎硅薄绉诲姩缁椤乏鍊硷纴骞朵笖鎶婂彸鍊煎硅薄缃绌

浜呜В浜嗗墠闱㈢殑auto_ptr鍜寀nique_ptr锛屽啀𨱒ョ悊瑙shared_ptr闱炲父瀹规槗銆
涓庡墠闱涓よ呬笉钖岀殑鏄锛宻hared_ptr鍏佽稿氢釜鎸囬拡鎸囧悜鐩稿悓瀵硅薄锛屽墠涓よ呭湪鍒囨崲鎺у埗𨱒冩椂锛屼细灏嗗墠闱㈢殑娓呴櫎锛岃宻hared_ptr涓崭细銆

褰揿垹闄ゅ叾涓涓涓鏅鸿兘鎸囬拡镞讹纴鍙﹀栦袱涓骞朵笉浼氩弹鍒板彉鍖栥傚洜涓烘ゆ椂鍐呭瓨涓瀛桦湪镌寮旷敤璁℃暟锛屾疮娣诲姞涓涓狲hared_ptr锛屽紩鐢ㄨ℃暟+1锛屾疮娆¤皟鐢ㄦ瀽鏋勫嚱鏁帮纴寮旷敤璁℃暟-1銆傜洿鍒板紩鐢ㄨ℃暟鍑忎负0锛屾墠浼氶喷鏀捐ュ潡鍐呭瓨銆
auto_ptr鍜寀nique_ptr閮藉彲浠ラ氲繃move鍑芥暟杞鎹㈡垚shared_ptr绫诲瀷
褰扑娇鐢╯hared_ptr镞讹纴链闇瑕佹敞镒忕殑灏辨槸 阆垮厤寰鐜寮旷敤 锛屽畠浼氶犳垚鍫嗗唴瀛樻棤娉曟e父閲婃斁锛屽嚭鐜板唴瀛樻硠闇层傚备綍瑙e喅杩欎釜闂棰桦憿锛岃繖镞跺椤氨瑕佺敤鍒皐eak_ptr镄刲ock()阌

鎴戜滑链濂藉湪浣跨敤weak_ptr璁块梾瀵硅薄镞讹纴浣跨敤lock()鍑芥暟锛屽畠鍙浠ユ娴媤eak_ptr璁块梾镄勫硅薄鏄钖﹀瓨鍦锛屽傛灉瀛桦湪锛岃繑锲炰竴涓鍐呭瓨涓镄剆hared_ptr瀵硅薄锛屼笉瀛桦湪锛岃繑锲炰竴涓猲ullptr镄剆hared_ptr

褰揿弻钖戦摼琛ㄧ殑鍓嶉┍鎸囬拡鍜屽悗缁ф寚阍堜娇鐢ㄤ简shared_pre锛屽备笅

鐢变簬浣跨敤浜唖hared_pre锛屼竴鍧楀唴瀛樼┖闂存湁涓や釜瀵硅薄杩涜岀$悊锛岃屾棤娉曚娇寮旷敤璁℃暟涓0锛岄偅涔堢紪璇戝櫒灏辨棤娉曡嚜锷ㄩ喷鏀惧唴瀛樸

浣跨敤寮卞紩鐢锛屽急寮旷敤骞朵笉浼氢慨鏀瑰硅薄镄勫紩鐢ㄨ℃暟锛屼篃灏辨槸寮卞紩鐢ㄥ苟涓崭细瀵瑰硅薄镄勫唴瀛樿繘琛岀$悊銆备絾鏄瀹冭兘妫娴嫔埌寮旷敤瀵硅薄鏄钖﹁閲婃斁锛岄伩鍏崭简鍐呭瓨娉勯湶銆倃eak_pre灏辨槸寮卞紩鐢ㄣ

Ⅱ Android系统源代码情景分析的网友评论

强大的罗大师,感谢你的Android之旅,我已看完你的6篇教程,虽然我还不太懂,但是我相信你就是我打开它的那把钥匙,再次感谢你的教程。
——mutex_js
老罗,写的太精彩啦!不仅仅是在Android 按键机制方面令人受益匪浅,给我在学习其他模块上也提供了一套很好的分析思路。非常感谢!
——yuleslie
看你的文章,收获很多,分析得很透彻,思路清晰,前后呼应,成系统,对我帮助很大,非常感谢你的无私奉献!
——kenen2006
你的博客给了我一种非常刺激的体验,让我更深层次地认识Android。非常感谢你的讲解,太棒了!
——stevenhu_223
我真的想放弃这个行业,可我看到你的博客,让我看到了希望,让我充满了信心和坚定!
——zhudeqing
看过几本Andriod方面的书,但还真比不上这里的博客。罗老师的Linux内核知识及对软件架构的知识积累用功很深,代码阅读能力也很强!膜拜!
——herodie
我是看你的博客开始学Android的,写的真的太好了。每一个系列都自成一体,无需其他参考。从顶到下都能串到一起,这样看起来最痛快了!
——hellowolrd
本人语言功底也不是很好,所以系统学习Android也经历了不少困难。3个多月了,反反复复阅读你的博文;每一次都有进步,每一次的进步也都有不同的方向。谢谢!技术的道路上真没有捷径,更不可以偷懒。我将不懈努力!谢谢博主,期待您能出书!
——tankai19880619
刚看到老罗的这篇新作,还挺热乎的。忍不住分N口气读完,膜拜!读完后,有些有意思的想法,从文章本身来看,很精彩。这篇文章老罗至少说明了一下问题:
1. 两种最典型的使用场景及他们的区别(UI相关与否);
2. 引出来两种线程消息处理模型;
3. 用实例解释两种模型是如何使用的;
4. 最后介绍两种模型的是怎样实现的。
该文章不但告诉我们what(该文的主旨)、how (怎样使用),还有why(怎么实现)。
偶的神,一篇文章里写了这么多,还能写的这么清楚。不容易啊!
——rambo2188
太牛了!我是一个刚从事Android开发的新人,你的文章真是入木三分,读了很有启发,你的这种分析Android方式很棒!为了造福更多的Android学习者,建议你出书!
——yang105
我觉得也许学习这些知识并不算难,可是要做到时刻有一个清晰的思路去学并且能够把学过东西用通俗易懂的话语表达出来挺难的。必尽自身知识有限,有些东西可能一下子无法深刻理解。楼主是怎么做到的呢?感觉楼主的每篇文章都讲的精练透彻,主要是能把问题全讲出来。我想楼主的知识面一定很广!
——wantianpei
前言
虽然Android系统自2008年9月发布第一个版本1.0以来,2011年10月发布最新版本4.0,一共存在十多个版本,但是据官方统计,截至2012年3月5日,占据首位的是Android 2.3,市场占有率达到66.5%;其次是Android 2.2,市场占有率为25.3%;第三位是Android 2.1,市场占有率为6.6%;而最新发布的Android 3.2和Android 4.0的市场占有率只有3.3%和2%。因此,在本书中,我们选择了Android 2.3的源代码来分析Android系统的实现,一是因为它的基础架构是最稳定的;二是因为它是使用最广泛的。
本书内容
全书分为初识Android系统篇、Android专用驱动系统篇和Android应用程序框架篇三个部分。
初识Android系统篇包含三个章节的内容,主要介绍Android系统的基础知识。第1章介绍与Android系统有关的参考书籍,以及Android源代码工程环境的搭建方法;第2章介绍Android系统的硬件抽象层;第3章介绍Android系统的智能指针。读者可能会觉得奇怪,为什么一开始就介绍Android系统的硬件抽象层呢?因为涉及硬件,它似乎是一个深奥的知识点。其实不然,Android系统的硬件抽象层无论是从实现上,还是从使用上,它的层次都是非常清晰的,而且从下到上涵盖了整个Android系统,包括Android系统在用户空间和内核空间的实现。内核空间主要涉及硬件驱动程序的编写方法,而用户空间涉及运行时库层、应用程序框架层及应用程序层。因此,尽早学习Android系统的硬件抽象层,有助于我们从整体上去认识Android系统,以便后面可以更好地分析它的源代码。在分析Android系统源代码的过程中,经常会碰到智能指针,第3章我们就重点分析Android系统智能指针的实
现原理,也是为了后面可以更好地分析Android系统源代码。
Android专用驱动系统篇包含三个章节的内容。我们知道,Android系统是基于Linux内核来开发的,但是由于移动设备的CPU和内存配置都要比PC低,因此,Android系统并不是完全在Linux内核上开发的,而是在Linux内核里面添加了一些专用的驱动模块来使它更适合于移动设备。这些专用的驱动模块同时也形成了Android系统的坚实基础,尤其是Logger日志驱动程序、Binder进程间通信驱动程序,以及Ashmem匿名共享内存驱动程序,它们在Android系统中被广泛地使用。在此篇中,我们分别在第4章、第5章和第6章分析Logger日志系统、Binder进程间通信系统和Ashmem共享内存系统的实现原理,为后面深入分析Android应用程序的框架打下良好的基础。
Android应用程序框架篇包含十个章节的内容。我们知道,在移动平台中,Android系统、iOS系统和Windows Phone系统正在形成三足鼎立之势,谁的应用程序更丰富、质量更高、用户体验更好,谁就能取得最终的胜利。因此,每个平台都在尽最大努力吸引第三方开发者来为其开发应用程序。这就要求平台必须提供良好的应用程序架构,以便第三方开发者可以将更多的精力集中在应用程序的业务逻辑上,从而开发出数量更多、质量更高和用户体验更好的应用程序。在此篇中,我们将从组件、进程、消息和安装四个维度来分析Android应用程序的实现框架。第7章到第10章分析Android应用程序四大组件Activity、Service、Broadcast Receiver和Content Provider的实现原理;第11章和第12章分析Android应用程序进程的启动过程;第13章到第15章分析Android应用程序的消息处理机制;第16章分析Android应用程序的安装和显示过程。学习了这些知识之后,我们就可以掌握Android系统的精髓了。
本书特点
本书从初学者的角度出发,结合具体的使用情景,在纵向和横向上对Android系统的源代码进行了全面、深入、细致的分析。在纵向上,采用从下到上的方式,分析的源代码涉及了Android系统的内核层(Linux Kernel)、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(Application Framework)以及应用程序层(Application),这有利于读者从整体上掌握Android系统的架构。在横向上,从Android应用程序的组件、进程、消息以及安装四个角度出发,全面地剖析了Android系统的应用程序框架层,这有利于读者深入地理解Android应用程序的架构以及运行原理。

Ⅲ Android有什么好的技术点适合进行技术分享

进程间通信的Binder机制。FrameWork 层的核心。
JNI 的使用。FrameWork 层的基石,几乎整个 FrameWork 层都是通过 JNI 实现对 Library 层调用的。
Material Design 设计。传说中设计师导向型的 UI 风格。

OpenGL ES 3.1 ,Android 5.0开始提供 Java 接口和原生支持。
低功耗蓝牙(貌似从4.3开始支持)。
Android 5.0提供的 JobScheler API。允许通过为系统定义要在以后的某个时间或特定条件下异步运行的任务,优化电池寿命。

Zygote 进程。FrameWork 层的祖宗,所有的 app 进程以及系统服务进程都是 zygote fork 出来的。不然怎么会叫 zygote 呢。
Android Netd。Android 中网络守护进程,通过封装各种底层协议,隔离底层网络接口的差异,给 FrameWork 层提供统一接口服务。
Vold: Volume Daemon, 用于管理和控制 Android 平台外部存储设备的后台进程,这些管理和控制,包括 SD 卡的插拔事件检测、 SD 卡挂载、卸载、格式化等。

Rild: Radio Interface Layer Daemon, 用于智能手机的通信管理和控制的后台进程,所有和手机通信相关的功能,例如接打电话、收发短信/彩信、 GPRS 等都需要 Rild 的参与。

Surface 系统。你会明白 Activity 是如何完成界面绘制的。
有 Zygote fork 出来的 SystemServer 。Android 中几乎所有的核心服务(ActivityManagerService、WindowManagerService 等)都存在于 SystemServer 中。
智能指针。所有 Android 源码剖析的书必讲的一个。

阅读全文

与安卓源码智能指针相关的资料

热点内容
安卓怎么关权限保护隐私 浏览:390
海牛微视app怎么用 浏览:70
单片机怎样选变压器 浏览:829
癌症pdf 浏览:725
云服务器镜像批量部署环境 浏览:683
安卓手机浏览器能访问什么网站 浏览:254
找不到网站的服务器ip地址该如何解决 浏览:743
算法十个数降序排列 浏览:95
基于单片机的老年人健康监测系统 浏览:706
python入门经典pdf下载 浏览:17
东芝变频2p空调压缩机 浏览:227
自家wifi怎么能加密 浏览:644
红米k40加密门禁卡 浏览:847
什么样的源码好看 浏览:156
手机主服务器有什么用 浏览:612
程序编写命令 浏览:597
android发送心跳包 浏览:385
指标源码和原理 浏览:700
汽车空调压缩吸盘 浏览:208
崽崽因app版本不同不能邀请怎么办 浏览:686