记录
1、layout 中的wrap_content
和match_parent
区别?
wrap_content
:”包裹“内容,即控件大小跟随内容match_parent
:“适应”父容器,即填充满<>/font父容器的其他内容
2、layout中的framelayout
和linearlayout
的区别?
ConstraintLayout
和RelativeLayout
呢?
- Android 五大布局(LinearLayout、FrameLayout、AbsoulteLayout、RelativeLayout、TableLayout )
- Android 约束布局(ConstraintLayout)详解
3、如何添加背景图?
4、如何(使用Android studio)打包(导出未签名的apk)
- Android Studio 导出未签名 apk
大致步骤:
右上角Gradle——双击assemble,即可
生成在:
可以发现有两个apk:
一个是默认的带debug的签名,
一个是unsigned apk
5、如何获取系统签名
问题:
方法一:使用signapk.jar
工具
(该方法需要java8)
- android软件获取系统签名——概述和框架
- Android应用程序获取系统签名的方法——详细方法
大致两个过程:
- 获取Android系统签名文件:秘钥文件
platform.x509.pem
、platform.pk8
和签名工具signapk.jar
-
生成数字证书:
keytool -genkey -keystore my.keystore -keyalg RSA -validity 20000
-
放于同一个文件夹下并执行java -jar signapk.jar platform.x509.pem platform.pk8 未签名的apk文件名 签名后的apk文件名
-
放于同一个文件夹下并执行:
即可获得系统签名后的的apk,接下来就是其安装到安卓设备:通过adb push
或者adb install
方法二:使用工具keytool-importkeypair
获取下面三个文件之后,在linux中执行代码
主要分为两大步:
- 生成jsk文件,以下在Linux中执行:
sed -i 's/\r$//' keytool-importkeypair
./keytool-importkeypair -k system_key.jks -p hik12345 -pk8 platform.pk8 -cert platform.x509.pem -alias system_key
- 在Android studio中操作
参考:Android 系统签名文件jks生成(供Android Studio使用)
6、如何导入其它工程的库或者调用其它项目的接口?
- 在app中的
dependencies
修改:
代码如下:
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(path: ':archi')
implementation project(path: ':proto')
-
settings.gradle
的修改:
添加include ':xxx'
-
build.gradle
的修改:
以下为不修改build.gradle
而可能导致的问题:
1、解决报错> Plugin with id 'kotlin-android' not found.
ext {
kotlin_version = '1.4.10'
}
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
2、解决报错DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'. It will be removed in version 5.0 of the Android Gradle plugin.
将以下代码:
dataBinding {
enabled true
}
改为:
buildFeatures{
dataBinding = true
// for view binding :
// viewBinding = true
}
3、解决报错:Failed to resolve: :ipc-22: Affected Modules: xxxx
也就是说,项目的 aar 文件(lib 文件下)导入出错
需要在两个地方加入如下代码:
buildscript {
ext {
kotlin_version = '1.4.10'
}
repositories {
google()
jcenter()
// 导入 aar 文件所在文件夹
flatDir {
dirs '../libs'
}
}
allprojects {
repositories {
google()
jcenter()
// 导入 aar 文件所在文件夹
flatDir {
dirs '../libs'
}
}
资源
主要参考:
“Android 开发者基础知识”课程由 Google Developers 培训团队设计。您必须具备 Java 编程语言方面的经验,才能学习这门课程。
主要包括以下资源: