前言
这里是记录本人自学Android Studio的基础问题,留着以后进行回顾。
1、创建新的项目时R文件生成错误
在上面菜单栏中:选择Build →→ Clean Project 即可解决
2、新的项目中activity_main.xml中使用的ConstraintLayout
字面意思为约束布局,子View通过四个方向的约束来决定自己的位置,可以更好地进行可视化操作,是2016年google正式发布的布局,从此默认布局全部变成了ConstraintLayout
ConstraintLayout的详解请参考:
https://blog.youkuaiyun.com/guolin_blog/article/details/53122387
https://blog.youkuaiyun.com/zhaoyanjun6/article/details/62896784
https://blog.youkuaiyun.com/u013187628/article/details/60751812
3、右侧Inspector区域
如图所示,红色框是控件在垂直和水平方向上的比例,可以手动进行调整,即控制控件的位置。蓝色框是控件可以距离边缘的最小默认距离。0即表示控件可以紧贴边缘。
如上图,红色框可以调整控件的大小,有三种模式可以进行选择,用鼠标点击可以更改模式。
即表示wrap_content。
即表示固定值。
表示任何大小,类似于match_parent的属于ConstraintLayout独有的大小。
4、添加Guideline、Barrier。
在这里可以选择添加Guideline和Barrier。
添加Guideline可以划分区域,然后控件可以在画出的线上进行添加约束。
Barrier为屏障约束,不可见,包含了多个控件,与Guideline有很大不同。
学习Barrier主要参考:
https://blog.youkuaiyun.com/shulianghan/article/details/105994710/
学习约束布局中的链式约束主要参考:
https://blog.youkuaiyun.com/shulianghan/article/details/94621225
学习ConstraintLayout中的约束集ConstraintSet主要参考:
https://blog.youkuaiyun.com/shulianghan/article/details/105995175
5、文件目录下的drawable和mipmap的区别
9妹图片和shape资源文件只能放在drawable目录之中,mipmap目录下保存的是适应于各个分辨率的启动图标,也可以存储需要适应屏幕分辨率的图片,可以提高显示性能、占用内存少。
6、关于AVD的选择问题
红色框是手机或者平板的模拟器选择,64位操作系统都可以选择,32位的只能够选在不带有_64标签的模拟器。google api是可以提供google服务的,但是没有google play 商店,无法和一些google应用进行信息联系。google play带有google play商店的,可以通过模拟器下载应用来进行调试。
黑色框为穿戴设备,带有wear字样。
蓝色框为电视设备,带有TV字样。
7、adb问题
kill-server失败是可能未启动adb
start-server启动adb成功,端口为5037。
可以采用下列语句查询占用端口的任务
采用下列语句查询该任务的名称
8、SDK Manager打开闪退问题
我在网上找了很多种方法包括:
①环境变量的问题
②修改find_java.bat文件
③删除C:\Windows\system32\下的 java.exe、javaw.exe、javaws.exe
以上方法都不能解决我的问题,于是自己开始寻找到底哪里出了问题。
造成问题原因:
使用Android Studio中的SDk Manager 将Android SDK Tools升级到了最新版,它会将SDk目录下的tools文件中的文件进行拆分,致使外面的SDk Manager打开时闪退的问题。更新到最新版本时,tools文件夹下的一些文件会被分到和tools文件夹的同级文件夹
emulator
主要对比参考:https://blog.youkuaiyun.com/wang295689649/article/details/60960953
解决方法:
上网下载SDk包,将新下载的SDK中的tools文件夹覆盖原来的tools文件夹,然后SDk Manager就可以打开了。
附上下载SDk的地址参考:http://tools.android-studio.org/index.php/sdk
建议:
只使用外面的SDk Manager进行Android SDK Tools的更新,两者的最新版本不一样,版本问题可能会导致闪退。
补充:
①如果只覆盖tools文件夹不能解决问题,那就整个把SDk都换了试试。
②使用外面的SDk Manager将Android SDK Tools更新到它的最新版时可以解决下列启动AVD报错问题:
我一开始也有这个问题,但是没有进行截图,图来源:https://blog.youkuaiyun.com/qq_38608642/article/details/88867053
9.drawable
应用目录下的drawable分两种模式一个正常,一个是v24。
区别是:drawable-v24是用来存放矢量图的。
10.activity的生命周期
11.音频和视频文件存放在raw文件夹下面
用R.raw.audio1进行调取。
12.如何进行本地化多语言开发
为了让开发和维护更加容易,我们需要将资源进行分离。例如显示一个字符串时,将字符串存放在strings.xml之中,然后在进行调用。我们在strings.xml之中添加变量的时候可以添加多种语言,让应用随着系统进行语言的改变。
点击 open editor 打开管理器
点击地球图标进行语言的添加
在这里添加默认的字符串值和多个语言的字符串值
完成后会有多个strings.xml进行字符串常量值的存储。
效果:
13.如何让屏幕不会进行翻转,即竖屏锁定
在activity中加上如图属性即为竖屏锁定。
14.如何让竖屏和横屏的布局不同
点击如图创建副本。
15.每次翻转时都会将应用进行destroy然后重新加载,如何保存翻转时的数据
重写函数:
编写判断并进行加载:
注意:这只是临时的保存数据,并不是永久的进行保存。想要永久保存还需要后面进行学习。
16.使用android studio中的自带的矢量图标库
点击如图所示的位置进行查看。
17.new ViewModelProvide(this)报错问题
红色为new ViewModelProvide(this)的报错,改成蓝色的就好了。
原因:2020-03-18,ViewModelProviders.of已弃用,且new ViewModelProvide(this)也不能使用的(因为它的构造方法加了个Factor),
参考:https://developer.android.com/reference/android/arch/lifecycle/ViewModelProviderhttps://developer.android.com/reference/androidx/lifecycle/ViewModelProvider.NewInstanceFactory,
第二种方法:
直接修改默认的lifecycle_version,修改build.gradle, dependencies下显示声明版本号
def lifecycle_version = “2.2.0”
implementation “androidx.lifecycle:lifecycle-extensions:$lifecycle_version”
所以上面蓝色框的解决方法对应的版本是2.1.0
以前写的代码并没有发生问题,难道同一个android studio 中的两个module的版本号还能不同?以后还需要进行验证。
验证:
两者对比,以前的module中多了一行声明版本的话,所以同一个android studio 不同的module真的会产生版本号不同的问题。原因以后再找。。
18.使用databinding
按照如图所示进行修改来使用dataBinding。
然后,在activity_main.xml文件中的第一行alt+enter快捷键操作调出提示,选择第一个将我们的布局改成databinding。
19.快捷键操作
(1)代码格式化
(2)将xml代码进行排序更正
(3)删除多余未使用的包
20.打包成APK
填好自己的信息:
填好自己路径和选择版本:
debug版本不能装到真机。
Signature Versions中:两个都最好选上,第一个不选中,打包处理的apk无法安装;第二个不选中,到Android7.0系统内会出现问题。