熟悉Android应用开发环境
<h2 id="知识点">知识点</h2><h3 id="android开发环境搭建">Android开发环境搭建</h3>
<p>jdk版本选择6,Google提供了ADT Bundle软件包(包括Eclipse、adt插件、Android SDK)</p>
<h3 id="android-apk结构">Android apk结构</h3>
<p>APK 是 Android PacKage 的缩写,即 Android 安装包。APK文件其实是zip格式,后缀名被修改为apk,可以用解压软件打开,结构如下:</p>
<p><img src="https://www.hetianlab.com/headImg.action?guideImg=e086e236-6789-4fd4-a6e1-8a5147752cd9.png" alt="img" loading="lazy"></p>
<p>AndroidManifest.xml是程序全局配置文件,每个应用都必须定义,它描述了应用的名字、版本、权限、引用的库文件等信息。apk中的AndroidManifest.xml是经过压缩的,可以通过AXMLPrinter2工具解开,命令为:java -jar AXMLPrinter2.jar AndroidManifest.xml。</p>
<p>classes.dex是java源码编译后生成的dalvik字节码文件。</p>
<p>resources.arsc是编译后的二进制资源文件的索引。</p>
<p>res目录存放资源文件,包括图片,字符串等。</p>
<p>libs目录存放程序中用到的so库。</p>
<p>META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。</p>
<p>assets目录用于存放需要打包到应用程序的静态文件。</p>
<h3 id="adb使用">ADB使用</h3>
<p>ADB(Android Debug Bridge,安卓调试桥)是一个C-S应用程序,由三个组件构成:</p>
<p>*一个在设备或模拟器上运行的守护进程</p>
<p>*一个在开发计算机上运行的服务</p>
<p>*通过服务和守护进程进行通信的应用程序</p>
<p>作为开发机和目标设备之间的通信管道,ADB允许在目标设备上安装应用程序、推拉文件以及运行shell命令。</p>
<p>ADB是连接PC与Android设备的桥梁,可以让用户在电脑上对手机进行全面操作。常用命令:</p>
<p>adb devices</p>
<p>查看当前连接的Android设备,包括真机和模拟器。</p>
<p><img src="https://www.hetianlab.com/headImg.action?guideImg=c75225e5-3c87-4c30-ba0d-07bf0ad46afb.png" alt="img" loading="lazy"></p>
<p>adb install target.apk</p>
<p>把目标apk安装到Android设备上。</p>
<p>adb uninstall <apk包名></p>
<p>卸载指定apk。</p>
<p>adb shell pm list packages</p>
<p>获取已安装的应用的包名</p>
<p>adb push <本地路径> <远程路径></p>
<p>把本地的文件(夹)上传到Android设备。</p>
<p>adb pull <远程路径> <本地路径></p>
<p>把Android设备上的文件(夹)下载到本地。</p>
<p>adb -s device-name shell </p>
<p>shell登录到指定Android设备,或者远程执行shell命令。device-name可参考adb devices的输出。</p>
<p>adb -s device-name logcat [-s filter]</p>
<p>查看指定Android设备log信息,-s为过滤选项,可用于调试应用程序。</p>
<h3 id="avd">AVD</h3>
<p>AVD全称Android Virtual Device,可用于模拟不同设备的软、硬件配置,在使用之前需要手动创建。Eclipse中选择Windows-Android Virtual Device Manager-New,输入AVD名称、设备型号、Android版本、Ram、SDcard等信息,点击ok按钮。</p>
<p><img src="https://www.hetianlab.com/headImg.action?guideImg=082caf3c-cc60-4955-8d8d-3aa284ac324c.png" alt="img" loading="lazy"></p>
<p>启动AVD可以通过两种方式:</p>
<p>Windows-Android Virtual Device Manager-选择已创建的AVD-start;</p>
<p>命令行中执行android list avd查看已创建的AVD,然后执行</p>
<p>emulator –avd 启动AVD;</avd></p>
<h2 id="实验">实验</h2>
<h3 id="第一步">第一步:</h3>
<p>要求新建安卓项目,并运行它。</p>
<p>打开<img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120153146497-1659358913.png" alt="image-20210120153144689" loading="lazy"></p>
<p>然后创建一个项目</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120153301397-1616363465.png" alt="image-20210120153259711" loading="lazy"></p>
<p>命名并设置版本</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120153555917-376551719.png" alt="image-20210120153554177" loading="lazy"></p>
<h3 id="查了一下为什么这样">查了一下为什么这样:</h3>
<h4 id="了解api">了解api</h4>
<p>API全称 Application Programming Interface,<strong>应用程序接口</strong>。</p>
<p>一般是指一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。</p>
<p>通俗来讲<strong>API就是可以轻松实现和其他软件的交互。</strong></p>
<h4 id="了解sdk">了解sdk</h4>
<p>SDK全称software development kit,<strong>软件开发工具包</strong>。</p>
<p>一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。</p>
<p>通俗来讲<strong>就是第三方服务商提供的实现产品软件某项功能的工具包。</strong></p>
<h4 id="api和sdk的区别">API和SDK的区别</h4>
<ul>
<li>API是一个函数,有其特定的功能;而SDK是一个很多功能函数的集合体,一个工具包。</li>
<li>API是数据接口,SDK相当于开发集成工具环境,要在SDK的环境下来调用API。</li>
<li>API接口对接过程中需要的环境需要自己提供,SDK不仅提供开发环境,还提供很多API。</li>
<li>简单功能调用,API调用方便快捷;复杂功能调用,SDK功能齐全。</li>
</ul>
<p>然后就一直next创建就好了</p>
<p>分析图片的结构内容</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120154442623-1575694781.png" alt="image-20210120154440836" loading="lazy"></p>
<p>src/中存放源代码,layout/中定义布局文件,values/中定义一些资源属性以及AndroidManifest.xml程序全局配置文件。</p>
<h3 id="第二步">第二步:</h3>
<p>点击Run选项,点击里面的Run Configurations选项,为应用配置运行环境。试验机卡崩了。。。销毁重新建一个!</p>
<p>直接点击运行(之前在安卓killer不能运行,因为少安卓tools,这个发现有,所以可以直接运行)</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120161543801-1035664767.png" alt="image-20210120161541956" loading="lazy"></p>
<p>达到实验目的</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120161813632-273326300.png" alt="image-20210120161811757" loading="lazy"></p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120161634341-788774484.png" alt="image-20210120161632526" loading="lazy"></p>
<p>ps:(其实是开机就直接打开了,因为运行的就是这个apk,也可以回到桌面,点击helloworld)</p>
<h3 id="第三步">第三步:</h3>
<p>用adb命令进行一系列操作</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120162017249-1359431394.png" alt="image-20210120162015639" loading="lazy"></p>
<p>adb shell进入控制台,说了是基于linux</p>
<p>然后命令ls简略的文件列表</p>
<p>我们用命令ll查看文件所有者,文件所属者、其他用户的权限,最高的为可读写执行,还有任务的创建时间</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120162528517-1889473442.png" alt="image-20210120162526779" loading="lazy"></p>
<p>然后可以按ctrl+c退出控制台</p>
<p>执行adb logcat命令,可以看到系统所有的日志信息:</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120162638305-1193735728.png" alt="image-20210120162636568" loading="lazy"></p>
<h2 id="课后作业">课后作业:</h2>
<h3 id="一">一</h3>
<p>用终端命令安装一个目录下的文件到安卓机中</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120163252354-1987162880.png" alt="image-20210120163250613" loading="lazy"></p>
<p>然后卸载</p>
<p>刚开始直接用命令adb uninstall webaccessdemo不行</p>
<p>所以用命令adb shell pm list packages复制一下文件名,发现没有用全名,标记全名后。用adb uninstall com.example.webaccessdemo完成卸载</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120163901543-445104469.png" alt="image-20210120163859816" loading="lazy"></p>
<h3 id="二">二</h3>
<p>android布局文件在哪个目录下?</p>
<p><strong>res/layout</strong></p>
<p>以下哪个选项可以用来测试android应用程序?</p>
<p><strong>AVD</strong></p>
<p>下面哪条命令可以实现安装android应用?</p>
<p><strong>adb install target.apk</strong></p>
<hr>
<p>补充一个内容:</p>
<p>终端命令打开安卓机</p>
<p>首先我们需要知道avd机子的名字,然后用命令 emulator –avd and412(这是avd机子的名字)打开安卓机</p>
<p><img src="https://img2020.cnblogs.com/blog/2218584/202101/2218584-20210120164717188-279651083.png" alt="image-20210120164715082" loading="lazy"></p>
<h2 id="参考链接">参考链接:</h2>
<p>https://www.hetianlab.com/expc.do?ce=f34b66f1-eaa8-4ce5-9ed1-68a09ea02921</p>
<p>https://www.zhihu.com/question/21691705</p>
</div>
<div id="MySignature" role="contentinfo">
别人都在不停的努力,自己又怎么会停<br><br>
来源:https://www.cnblogs.com/chenyouxiu/p/14303807.html
頁:
[1]