飞双江 發表於 2021-9-13 12:24:00

Android 开发

<h1 id="android-开发">Android 开发</h1>
<h2 id="第一章android一第一次常识">第一章、Android一第一次常识</h2>
<h3 id="1-1-android开发概述">1-1 Android开发概述</h3>
<ul>
<li>Android是Google开发的操作系统</li>
<li>Android开发是移动应用开发的表现形式之一</li>
<li>创始人是Andy Rubin</li>
</ul>
<p><strong>安卓平台架构</strong></p>
<p><img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210909153951663.png"></p>
<p><strong>四大组件</strong></p>
<ul>
<li>
<p>Activity屏幕</p>
<p><strong>控件的容器。</strong></p>
</li>
<li>
<p>Service服务</p>
<p><strong>后台运行的程序</strong></p>
</li>
<li>
<p>ContentProvider内容提供者</p>
<p>跨应用共享数据的唯一方式</p>
</li>
<li>
<p>BroadcastReceive广播接收器</p>
<p>操作系统发出的各种事件</p>
</li>
</ul>
<p><img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908080046542.png"></p>
<h3 id="1-2-android开发工具">1-2 Android开发工具</h3>
<p><s>Eclipse</s> Android Studio</p>
<ul>
<li>下载安装JDK</li>
</ul>
<p>为什么使用Android Studio ?</p>
<p>Android Studio是Google自己推出的Android集成开发工具,而且Google已经停止对Eclipse的支持。</p>
<p><strong>安装Android Studio</strong></p>
<p>到官网点击下载</p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908080458122.png">
<p>根据自己需要更换目录</p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908080628795.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908081101305.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908081115401.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908081519270.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908081222459.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908081255368.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908081316356.png">
<p><img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908081719353.png"></p>
<p>问题1:</p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908082255260.png">
<p>打开发现并不是我上一步指定的位置</p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908082354906.png">
<p>将其更换无用,因为原来我指定的SDK路径文件夹都是空的</p>
<p><img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908082452339.png"></p>
<p>设置代理</p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908083259283.png">
<p>并且SDK都是灰色的点不开,所以准备自己下载一个单独的sdk</p>
<p>http://tools.android-studio.org/index.php/sdk</p>
<p>根据自己的系统选择需要的版本</p>
<p><img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908084225713.png"></p>
<p>安装SDK</p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908084241653.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908084259013.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908084312424.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908084353248.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908084409868.png">
<p>安装完成之后</p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908085153663.png">
<p><img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908085229456.png"></p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908085253796.png">
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908085342607.png">
<p>然后再打开这个就可以了</p>
<p><img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210908085448398.png"></p>
<blockquote>
<p>参考资料:https://blog.csdn.net/NBA_1/article/details/104147829</p>
</blockquote>
<h3 id="1-3第一个安卓应用">1-3第一个安卓应用</h3>
<p>Android文件结构:</p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210909155622094.png">
<pre><code class="language-txt">manifests:

        AndroidManifest.xml:APP的配置信息

java:主要为源代码和测试代码

res:主要是资源目录,存储所有的项目资源
    drawable:存储一些xml文件,-*dpi表示存储分辨率的图片,用于适配不同的屏幕。

      -mdpi:320x480

      -hdpi:480x800、480x854

      -xhdpi:至少960x720

      -xxhdpi:1280x720

    layout:存储布局文件

    mipmap:存储原声图片资源

    values:存储app引用的一些值

      - colors.xml:存储了一些color的样式

      - dimens.xml:存储了一些公用的dp值                     

      - strings.xml: 存储了引用的string值

      - styles.xml:   存储了app需要用到的一些样式

    Gradle Scripts:build.gradle为项目的gradle配置文件
</code></pre>
<p>2、Project工程</p>
<img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210909155717049.png">
<pre><code>build:系统生成的文件目录,最后生成的apk文件就在这个目录,这里是app-debug.apk

libs:为项目需要添加的*.jar包或*.so包等外接库

src:项目的源代码,其中android test为测试包,main里为主要的项目目录和代码,test为单元测试代码
</code></pre>
<p>3、AndroidManifest.xml</p>
<p><img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210909155848423.png"></p>
<p>AndroidManifext描述了package中暴露的组件像activity,serveice等,他们各自的实现类,各种能被处理的数据和启动位置。此外还能声明程序中的contentproviers,intentreceivers,还能指定permissions和instrumentation等等。</p>
<ul>
<li>
<p>xmlns:android:定义android的命名空间。</p>
</li>
<li>
<p>package:指定本应用内java主程序的包名,这里就是com.example.myapplication1了。</p>
</li>
<li>
<p>application:声明了每一个应用程序的组件及其属性。</p>
</li>
<li>
<p>android:allowBackup:将程序加入到系统的备份和恢复架构中。</p>
</li>
<li>
<p>android:icon:显而易见表示APP的图标了。</p>
</li>
<li>
<p>android:label:许可列表。</p>
</li>
<li>
<p>android:supportsRtl:启用各种RTLAPI来用RTL布局显示应用,这个是android4.2的新特性。   android:theme:android的主题。</p>
</li>
<li>
<p>activity:android:name表示当前的activity的名字,因为工程为MainActivity,所以这个名字就为这个,之后有新的activity的话,也需要添加才可以使用。</p>
</li>
<li>
<p>intent-filter:包含了action,data和category三种。</p>
<ul>
<li>action:只有android:name属性,常见的是android.intent.action.MAIN,表示此activity是作为应用程序的入口。</li>
<li>data:指定了希望接受的intent请求的数据URI和数据类型。</li>
<li>category:android:name属性,常见的是android.intent.category.LAUNCHER,决定应用程序是否显示在程序列表里。</li>
</ul>
</li>
</ul>
<p>关于本应用的manifest基本上没啥问题了,以后遇到了别的google查阅就好。</p>
<p>遇到问题:</p>
<p>换成线性布局后报错:</p>
<h1 id="_"><img src="https://gitee.com/forgetc77/blog-img/raw/master/image-20210909161612055.png"></h1>
<p>添加一句:</p>
<pre><code class="language-xml"> android:orientation="vertical"
</code></pre>
<h2 id="二安卓开发">二、安卓开发</h2>
<h3 id="1activity">1.activity</h3>
<h3 id="简介"><strong>简介</strong></h3>
<p>一个Activity通常就是一个单独的屏幕</p>
<p>每个Activity都被实现为一个从Activity父类继承来的独立的子类;</p>
<p>对于开发者之言, Activity是一个程序的入口,是一个JAVA类</p>
<h3 id="activity类结构">Activity类结构</h3>
<p>android.app.Activity类的继承结构如下:</p>
<pre><code>java.lang.Object
           ↳android.content.Context
                    ↳android.content.ContextWrapper
                          ↳android.view.ContextThemeWrapper
                                ↳android.app.Activity
</code></pre>
<h3 id="常用方法">常用方法:</h3>
<h4 id="创建和使用"><strong>创建和使用:</strong></h4>
<pre><code class="language-java">public class OurActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState);
    protected void onStart();
    protected void onReStart();
    protected void onResume();
    protected void onPause();
    protected void onStop();
    protected void onDestroy();
}

</code></pre>
<h4 id="其他常用方法">其他常用方法:</h4>
<pre><code class="language-java">public void setContentView(int layoutResID)                         //设置布局文件
public final View findViewById(int id)                                        //会根据id找到对象
</code></pre>
<h3 id="子类">子类</h3>
<div class="mermaid">graph TB
    begin --&gt;ac
    begin--&gt;ag
   
</div><br><br>
来源:https://www.cnblogs.com/MyBlogForRecord/p/15261944.html
頁: [1]
查看完整版本: Android 开发