Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的。当我们创建一个Android项目时会包含两个Android build.gradle配置详解文件,如下图:
Android_Studio_3.5:稳步推进ProjectMarble计划
我们在 Android Studio 3.5 中引入了许多质量变更,请参阅《Android Studio 3.5 Beta 现已发布》或者 Android Studio 版本说明,查看完整版变更列表。当然,您也可以先阅读一下这篇文章或收看下方视频,快速了解一下其中的若干重要变更:
- 腾讯视频链接: v.qq.com/x/page/w091…
- Bilibili 视频链接: www.bilibili.com/video/av657…
系统健康
Project Marble 计划中系统健康方面的改进包括: 内存性能、输入与用户界面冻结、构建速度、CPU 使用以及 I/O 性能。我们针对这五点分别设计了新的监测机制,以便在开发过程中更准确地识别问题,此外,流程上的优化也让团队得以更好地分析用户反馈,从开发者自愿分享的统计数据和错误报告中获取更多洞见。
尽管系统健康的许多优化项可能并不为大家所熟知,不过其中还是有几个比较明显的变更,其中包括:
自动推荐内存设置
在 Android Studio 3.5 中,IDE 会识别出一个应用项目在 RAM 容量更高的机器上何时需要更多的 RAM,并在通知开发者增加内存堆大小;或者您也可以在 Appearance & Behavior → Memory Settings 下自行调整设置。
在浏览器输入URL回车之后发生了什么
Google终于发布了Android 10正式版
前言
9月4号凌晨,Google终于发布了Android 10正式版!
全新的Logo,依然沿用经典机器人,但在图标,颜色及细节上都有明显变动。新的设计是为了更加现代,更加易用。特别是文字从绿色改为了黑色,这样的变更对视觉障碍者更加友好。
除了Logo的变化,新版Android系统的命名也有重大变动。现有的命名规则是安装英文字母顺序依次选区甜品或零食来命名。如果从09年的Cupcake算起,不算08年开始的alpha和beat测试版,到现在已经用了10年。
在新的版本中将打破甜品,零食的命名规则,可能改为Android 10。David表示:“改变命名是为了避免全球不同地区的误解,某些语言里L和R是没有区分的。另外有些地方馅饼也不是甜点,棉花糖虽然味道不错,但是在世界上有很多地区是不受欢迎的食物。”
优雅解决Android软键盘弹出时把布局顶上去
解决方法
方法一:
在你的activity中的oncreate中setContentView之前写上这个代码
1 | getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); |
方法二:
在项目的AndroidManifest.xml文件中界面对应的
android:windowSoftInputMode=”adjustPan”这样键盘就会覆盖屏幕。
方法三:
把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView的封装。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。
Android APK 安装的原理
前言
大家有没有想过一个应用的APK是怎么被安装到安卓手机上的,安装的本质是什么?我们知道,Windows应用程序的安装包是一个可执行的压缩包,安装的过程是把压缩包中的数据和依赖库拷贝到安装目录,再在桌面或启动栏创建快捷方式,那么安卓的APK安装过程是不是也是这样的呢?本文将为大家解答这些问题。
APK包的构成
首先,我看一下APK包的构成,Android的APK包和Windows应用程序安装包是不同的,它只是个简单的压缩包,没有可执行的能力,我们还可以用zip工具直接解压它。
一个APK包含以下这些文件:
- META-INF目录:包含两个签名文件(CERT.SF和CERT.RSA),以及一个manifest文件(MANIFEST.MF)
- assets目录:包含工程中的asset目录下的文件,可以使用AssetManager获取
- res目录:包含那些没有被编译到resources.arsc的资源
- lib目录:包含适用于不同处理器的第三方依赖库,这里边可以有多个子目录,比如armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, 以及mips
- resources.arsc文件:存储编译好的资源,包括项目工程中的res/values目录里的xml文件,它们都被编译成二进制格式,也包括一些路径,指向那些没有被编译的资源,比如layout文件和图片
- classes.dex文件:项目中的java类都被编译到该dex文件,这个文件可以被Android的Dalvik/ART虚拟机解析。
- AndroidManifest.xml:二进制格式的manifest文件,这个文件是必须的。
这些文件是Android系统运行一个应用程序时会用到的数据和代码,下面介绍系统如何安装一个APK包。
静态代码lint常见报错处理
最近一周做了一些关于Android静态代码检测的东西,对于一些常见的lint警告做了记录,其实对于常见的lint警告我们得处理步骤可以分为如下:
- 查看lint报错的错误类型
- 追踪到代码处,确定是否代码自身问题
- 分析该类错误影响范围
- 确定解决方式(规范代码、添加注解、添加规则)
规范代码
一般是由于开发者在开发时,不细心造成误写等,或者是某些API过时,需要进行手动修改。
添加注解
对于某些特殊需求,可以通过加注解来避免lint报错,以下给出常见的添加注解的地方
java源代码
1 | @SuppressLint("xxxx") // xxxx代表某种lint检测类型 |
为Hexo添加CNZZ统计
前言
刚开始弄NexT主题的时候,一直都是用不蒜子的统计,但是不蒜子统计的内容太过简单了,不能够看到其他的一些数据,最近把友盟的统计给加上了。
友盟+ 传送门:https://passport.umeng.com/login?appId=cnzz
配置站点信息
登录之后,选择右上角的添加站点,配置好你的站点信息
Mac Os,iphone,ipad绑定阿里云邮箱
在 MacOS iPhone iPad 上面设置可能有差别,但是关键参数如下。
以Mac OS为例,打开设置,前往互联网账户,添加其他账户,邮件账户,按自己的阿里邮箱,或者你们公司给你的以你们公司名后缀结束的邮箱(其实还是阿里邮箱),填写邮箱密码。
接着选择账户类型:pop
收件服务器:pop3.aliyun.com
发件服务器:smtp.aliyun.com