使用 Lint 进行代码检查

使用 Lint 进行代码检查

背景

为了进一步规范协同合作中的代码规范,避免写低级 Bug 和对代码进行规约,在调研了多种方案后,决定使用该种方案对代码进行自动化检查和规约

阅读更多

记录一次 Android 内嵌 WebView 白屏无法加载内容的事故


昨天下午,产品经理突然发来了一张截图,内容是我们的 APP 因为违反了 Google Play 的某些规定被下架了。

这当然是马上排查原因并 fix 然后打包给测试同事重新测试一遍然后再提审啦。
但是问题来了,测试的同事发现 App 内的所有 HTML5 的页面都无法打开了,而主包(国内版本)却是正常的。

这怎么可能会发生呢,fix 被下架的问题并没有修改到 WebView 业务相关的代码,这就百思不得其解了。甚至一度以为是前端同事刚上线的代码影响到了海外版本的业务想甩锅。

拿起自己的手机装上 Google Play 版本的包打开对应的页面一看,基本上是第一次能正常加载,退出后再次点击进入 WebView 页面就无法加载了。

阅读更多

Android TextView 两端对齐

在项目中遇到项目要求在描述中进行两端对齐,而我们的 TextView 是不支持两端对齐的
要做到两端对齐,其实还是有些小 trick 的
justify_in_android_image_1.png

阅读更多

Android 组件化开发

Android 组件化开发

在项目的开发中,业务模块越来越多,代码量越来越多,编译构建的时间也越来越长,尝试将项目进行组件化开发。

所谓组件化,就是将各个业务模块解耦,在开发的时候将每个业务模块当做单独的 application 开发,在开发完毕后打包成 aar 或者以 module 的形式依赖到主 application 中。

阅读更多

Retrofit with okhttp

封装接口

首先,我们将将请求api封装成一个接口(interface), Retrofit 通过这个定义的interface生成一个具体的实现。
interface中进行接口api的定义,比如

1
2
3
4
    public interface RepoService {
@GET("/users/{user}/repos")
Call<ResponseBody> listRepo(@Path("user") String user);
}
阅读更多

状态栏 Status Bar

所谓 沉浸式状态栏变色状态栏 之分
按照文档,沉浸式指的是在一些阅读应用或者视频播放应用中进行全屏,隐藏 StatusBar NavigationBar 并在手指触摸手机顶部或者底部时可以唤出这两者的行为

阅读更多