小白学习Android开发第一天

  1. 在第一次安装Android studio 时遇到的问题

 在创建项目时出现了SDK Missming,可能是一直在next,没给出时间联网下载更新

解决办法:

学习了博主:https://blog.csdn.net/qq_40893824/article/details/104372462?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162562309916780265493514%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162562309916780265493514&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-104372462.first_rank_v2_pc_rank_v29&utm_term=%E5%88%9B%E5%BB%BA%E7%AC%AC%E4%B8%80%E4%B8%AAandroid+studio%E9%A1%B9%E7%9B%AE%EF%BC%8C%E5%87%BA%E7%8E%B0SDK++missing&spm=1018.2226.3001.4187

的解决方案,但是没有作用,结果如下:

后将软件进行了卸载,卸载流程参考博主:

https://blog.csdn.net/qq_40364358/article/details/85223081

重新安装成功后;

创建了第一个项目HelloWord,语言设计kotlin

问题一: 

解决办法是: file –setting - tools - server Certificates 中Accept non-trusted certificates

问题二:

解决办法:

最终的解决方案是:删除生成的配置文件

Idea 在关闭时不会删除配置文件,因为在下载外部的信息(刚刚访问的是谷歌),所以使用了proxy,现在使用各种资源是在公司的库中进行访问下载,虽然是已经不再使用proxy,但是Idea在关闭时不会删除配置文件,所以在使用时,还是访问配置文件,配置文件中写了账号密码,所以还是使用proxy访问google。

将build.gradle中的buildscript中的仓库信息改为自己公司内部使用的。

问题三:无法创建模拟器,没有可使用操作系统版本,因为没有系统权限,需要申请后才可以使用USB接口,

现在的可使用如下:

申请了权限后:

运行结果:

因为申请了权限,使用了USB接口,使用真机进行测试,图如下:

2.HelloWord Demo分析

对于这个项目目录来说,是project结构模式的,

前两个是我们不需要进行更改的,是Android Studio自动生成的文件。

App这个目录中,就是我们主要开发所在的目录,项目中的代码、资源都在这里。Gradle中包含gradle wapper【这个是做什么用的?】的配置文件,使用gradle wapper不再需要将gradle下载好,会自动根据本地的缓存情况决定是否要联网下载【这里我是因为使用的公司的库,所以不需要联网下载,有公司的镜像库】,Android Studio默认使用的是gradle wapper,如果想要使用的是离线的,可以进行更改,具体更改可以查找一下。

.gitignore 是将指定的文件或者是目录排除在版本控制之外【为什么是控制在版本之外,有什么作用?】

.build.gradle 是全局gradle的构建脚本,一般不需要更改【这个构建脚本有什么作用?】

Gradle.properties 是全局gradle的配置文件,这里配置将会影响项目中的gradle编译脚本。

Gradlew 和gradlew.bat 这里两个文件是为了能在命令行中执行gradle命令。

Local.properties 是SDK的路径信息,内容一般是自动生成的,如果说你的路径发生了更改,则就在这里更改内容。

Setting.gradle 是指明了这个项目引入了哪些模块,通常是模块的引入是自动完成的。【什么是引入模块,是指的是一个项目可能是不同人开发不同模块,然后放在一起吗?】

  

这是我们使用的,

libs就是放我们引入的第三方jar包,如果需要某一个就添加进来,

AndroidTest 是写App的测试用例,可以在这里编写一些自动化测试。

Main-Java就是编写代码,创建会自动生成一个MainActivity.kt文件。

Main-res就是放使用的各种资源

Test使用来编写UNIT测试 用例的。

guard-ruels.pro是混淆规则,就是说为了保护项目,然后使用混淆功能保护。

3.理解代码

所有编写的Activity都要在xml中进行配置,不然访问不了,

<activity android:name=".MainActivity">
    <intent-filter>
        <action
android:name="android.intent.action.MAIN" />

        <category
android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

中间的两个是说明这个是入口的Activity,是从这个Activity进入的。

Acvtivity是门面,所有App上能看到的都是在Activity.kt中进行编写的,所以我的理解是类似于前端的页面。只不过是用kotlin进行编写的。

<activity android:name=".MainActivity">

    <intent-filter>

        <action android:name="android.intent.action.MAIN" />



        <category android:name="android.intent.category.LAUNCHER" />

    </intent-filter>

</activity>

这一部分是Activity的内容,mainActivity继承AppCompatActivity,AppCompatActivity继承Activity,Activity是基类,所有自定义的Activity都必须继承Activity或者它的子类,才能拥有Activity的特性。AppCompatActivity是一个向下兼容的Activity【有什么具体的啥作用?】

Oncreate()方法是任何一个Activity创建时必须要执行的方法,而且Android是要求逻辑和视图分离的,所以并不在Activity中进行界面的编写,而是在activity_main进行界面的编写,然后通过setContentView将其引进来。

而activity_main是在res中的layout中。

猜你喜欢

转载自blog.csdn.net/qq_45204129/article/details/118553835