Android开发第一讲 Android体系架构与Android发展史
<p></p><div class="toc"><div class="toc-container-header">目录</div><ul><li>Android开发入门教程<ul><li>一丶了解手机通讯技术发展史<ul><li>1.第一代通讯技术</li><li>2.第二代通讯技术</li><li>3.第三台通讯 3G</li><li>4. 4G技术</li><li>5.通讯技术发展的本质</li></ul></li><li>二丶Android 体系架构了解<ul><li>2.1 Android 体系架构</li><li>2.2 DVM 与 JVM 区别</li></ul></li></ul></li></ul></div><p></p><h1 id="android开发入门教程">Android开发入门教程</h1>
<h2 id="一丶了解手机通讯技术发展史">一丶了解手机通讯技术发展史</h2>
<h3 id="1第一代通讯技术">1.第一代通讯技术</h3>
<p> 第一代通讯技术,简单来说就是大哥大. 其原理是通过</p>
<p><strong>模拟信号进行传输</strong></p>
<ul>
<li>
<p>1.说话的时候产生声波震动</p>
</li>
<li>
<p>2.声波震动会让大哥大中的铜片产生震动</p>
</li>
<li>
<p>3.铜片震动会让其电容产生变化</p>
</li>
<li>
<p>4.电容产生变化会产生交变电流</p>
<p>那么反之当接收端 接收到的就是 4 3 2 1这样. 产生了通话</p>
</li>
</ul>
<p>问题所在:</p>
<p> 1.必须同频道. 不同频道的人不能通话. 类似于收音机</p>
<p> 2.保密性差,容易被窃听.</p>
<h3 id="2第二代通讯技术">2.第二代通讯技术</h3>
<p>工作原理:</p>
<p> <strong>从模拟信号到数字信号的转变</strong></p>
<p>转变是什么意思:</p>
<p> 1.首先交变电流会容易窃取.所以说话的声音转变为二进制</p>
<p> 2.接收端就将二进制转变出来即可. 二进制是有保密的</p>
<p>总结来说就是 二进制加密传输.</p>
<p>体积变小了</p>
<p>产生的功能:</p>
<p> 短信与彩信</p>
<p>某些2G系统也支持资料的传输与传真了</p>
<h3 id="3第三台通讯-3g">3.第三台通讯 3G</h3>
<p>工作原理:</p>
<p> 采用了数字通讯的方式</p>
<p>功能: 可处理图像 音乐 视频 等多种媒体形式</p>
<p>可以说3G手机才开始火起来. 手机进入智能时代</p>
<h3 id="4-4g技术">4. 4G技术</h3>
<p>工作原理: 集3G和无线局域网为一体 算是扩展</p>
<p>功能: 可以看短视频 比如现在的 抖音 快手 可以看高清电视.等等</p>
<h3 id="5通讯技术发展的本质">5.通讯技术发展的本质</h3>
<p><strong>GSM-->GPRS-->EDGE-->WCDMA-->HSDPA-->FDD-LTE</strong></p>
<p>这些才是从零到有发展的专业名字. 了解下即可.</p>
<p>可以百度看一下.</p>
<p>传输数据的演变</p>
<p>9K 42K 360K 7.2M 300M 等 现在5G也出来了.传输越来越快.</p>
<h2 id="二丶android-体系架构了解">二丶Android 体系架构了解</h2>
<h3 id="21-android-体系架构">2.1 Android 体系架构</h3>
<p>如下图所示</p>
<p><img src="https://img2020.cnblogs.com/blog/1197364/202008/1197364-20200826220440577-956631314.png" alt="" loading="lazy"></p>
<p>1.最底层 LinuxKernel (Linux 内核)我们不管写任何程序都是C语言来写的.所以最底层是整个核心支持库</p>
<p>2.HAL层硬件抽象层. Android是没有这个的. 为什么这里会有.原因是每个厂商都会定制的.因为Android是开源的 按理说是没有的. 因为是定制的.不想让其它人直接修改你底层的代码.</p>
<p>所以自己封装了一层. 大部分也是驱动代码.</p>
<p>3.Lib库层. 为了便于程序员的学习成本. 封装的一层.这样就更简单了. 都是C语言写的.封装成方法.</p>
<p>不用你操作底层了.</p>
<p>4.应用框架层. 与应用层都是Java代码写的. 为了让程序员用Java直接调用C.所以封装了新的层.</p>
<p>这样直接用Java调用方法即可. 方法内部会调用C不用你去调用C了.</p>
<p>5.应用层 应用层更简单了.提供各种各样的控件.直接调用方法就行了.</p>
<p>重要一层:</p>
<p>位于Library层的 Android Runtim层. 以后做逆向会用到.</p>
<p>安卓运行时. Java跑在Jvm中. 其实DVM 就是虚拟机. 主要是因为版权问题. 所以不适用.</p>
<p>其实也可以理解为JVM.</p>
<p>DVM JVM 都是构建在 OpenJdk上来开发的. GPL协议放出</p>
<h3 id="22-dvm-与-jvm-区别">2.2 DVM 与 JVM 区别</h3>
<p>1.编译方式的区别</p>
<p>jvm: 首先 .java文件 编译为.class文件 然后最终变为.jar包</p>
<p>DVM: .java->.class->.dex(压缩版的.jar)</p>
<p>2.架构</p>
<p>JVM: 基于堆栈的形式</p>
<p>DVM: 基于 寄存器结构</p>
<p>寄存器比堆栈快 所以肯定dex快.</p>
<p>.jar 是最原始的打包.</p>
<p>.dex 是将java中类中的 公共方法等进行优化. 比如A B两个类.都有一个方法C 而C逻辑是一样的.所以</p>
<p>我直接提取出来.</p>
</div>
<div id="MySignature" role="contentinfo">
<div>作者:IBinary</div> <div>出处:https://www.cnblogs.com/iBinary/ </div> <br> <br>
坚持两字,简单,轻便,但是真正的执行起来确实需要很长很长时间.当你把坚持两字当做你要走的路,那么你总会成功.
想学习,有问题请加群.群号:725864912(收费)群名称: 逆向学习小分队 群里有大量学习资源. 以及定期直播答疑.有一个良好的学习氛围. 涉及到外挂反外挂病毒 司法取证加解密 驱动过保护 VT 等技术,期待你的进入。
<br><br>
详情请点击链接查看置顶博客
https://www.cnblogs.com/iBinary/p/7572603.html
<p>本文来自博客园,作者:iBinary,未经允许禁止转载 转载前可联系本人.对于爬虫人员来说如果发现保留起诉权力.https://www.cnblogs.com/iBinary/p/13568415.html</p>
欢迎大家关注我的微信公众号.不定期的更新文章.更新技术. 关注公众号后请大家养成 不白嫖的习惯.欢迎大家赞赏. 也希望在看完公众号文章之后 不忘 点击 收藏 转发 以及点击在看功能.
<img src = "https://images.cnblogs.com/cnblogs_com/iBinary/1827080/o_220306121308_qrcode_for_gh_b8b8f84e4988_258.jpg" alt="微信公众号">
QQ群:
<img src="https://images.cnblogs.com/cnblogs_com/iBinary/1827080/o_21062107294320210621152919.png" alt="QQ群"><br><br>
来源:https://www.cnblogs.com/iBinary/p/13568415.html
頁:
[1]