Potato icon indicating copy to clipboard operation
Potato copied to clipboard

Read the fucking source code for the Android interview

Results 73 Potato issues
Sort by recently updated
recently updated
newest added

# Android:How to make network requests gracefully [TOC] ## Retrofit2 在 retrofit2 的 2.6.0 版本中,增加了对 kotlin coroutines 的支持。 ### 前提 在一般的业务中,请求服务器返回的结果都有如下的格式: ```json { "result": 0, "message": "", "data": "swensun" }...

USAGE

# Android: Develop Tips [TOC] 逐渐更新一些关于 Android 开发设计的一下小技巧 ## Multi-Module 多模块设计参考:[模块分层设计](https://github.com/yunshuipiao/Potato/issues/65) ## Design 屏幕适配:[建议使用今日头条屏幕适配方案](https://github.com/yunshuipiao/Potato/issues/40) ## Develop 1. 借助 Lifecycle,使得有需要的 java 类或者自定义控件,自动感知生命周期,解决内存泄漏的问题。 (参考:https://developer.android.com/topic/libraries/architecture/lifecycle) 2. 所有引入的第三方开源库,强烈建议 进行单独封装, 方便后续替换或者升级。 (比如图片记载,网络请求等等)

DOING

# Activity: Lifecycle and Launch Mode [TOC] 关于 Activty 相关的东西一直以来都是看别人总结的二手资料,从未正真的看过源码,包括官方文档的相关东西都能在源码中找到,所以 多看源码,永远不会错。 ### 继承关系 由于 Activity 的源码太多,一个类就有 8000 行代码,所以找感兴趣,当然,每个类前面的注释特别重要,属于必读内容。 ```java public class Activity extends ContextThemeWrapper implements LayoutInflater.Factory2, Window.Callback, KeyEvent.Callback, OnCreateContextMenuListener, ComponentCallbacks2,...

USAGE

[TOC] ## 日志 每一个Android App 都会有自己的日志系统。 推荐将日志模块放在工具类模块中,不要出现一个项目中存在多个日志工具类的情况。 如果是 sdk ,将日志模块的可见性设为模块内可见。 一般都会对日志进行封装,加上自定义的tag。如下 ```kotlin object LogTest { val tag = "LogTest" fun d(msg: String) { this.d(tag, msg) } fun d(tag: String, msg:...

USAGE

# 简易音乐播放器开发实录 [TOC] 最近完成了项目中关于音乐播放器开发相关的内容,之后又花了两天进行总结,特此记录。 另一方面,音乐播放器也同时用到了 Android 四大组件,对于刚接触 Android 开发的人来说也是值得去学习开发的一个功能。部分内容可能不会说的太详细。 ## 需求:音乐播放器具有的功能 1. 音乐后台播放(Service),UI 显示进度,歌曲信息 2. 音乐播放通知和锁屏通知,可操作(播放,暂停,上下一曲) 3. 音频焦点的处理(其他音乐播放器播放时相关状态更新) 4. 耳机线控模式的处理 ## UI 控制音乐播放,更新进度 关于音乐播放器的开发,官方在 5.0 以上提供的 MediaSession 框架来更方便完成音乐相关功能的开发。 大致流程是: 分为...

SOURCE CODE

# Android Library For Develop [TOC] 收集安卓开发必备的开源库: 下载 Download: [lingochamp](https://github.com/lingochamp)/**[okdownload](https://github.com/lingochamp/okdownload)** 权限: * 国产 ROM:[yanzhenjie](https://github.com/yanzhenjie)/**[AndPermission](https://github.com/yanzhenjie/AndPermission)** * 原生 ROM:[googlesamples](https://github.com/googlesamples)/**[easypermissions](https://github.com/googlesamples/easypermissions)**, [tbruyelle](https://github.com/tbruyelle)/**[RxPermissions](https://github.com/tbruyelle/RxPermissions)** 网络:[square](https://github.com/square)/**[retrofit](https://github.com/square/retrofit)**

DOING

# Android: Multi Module Structure 在笔者多年的安卓开发中,有意识的在思考一个 Android 项目的目录结构,下面是我的分享。 对于一个 Android 项目,我认为至少应该分为 4个模块。工具,基础,业务功能,App模块。 ## 工具模块 请看下图:(一个小小的建议:分别以 library_, module_ 前缀)命名 ![image](https://user-images.githubusercontent.com/10796970/61918917-e2144080-af85-11e9-8cd1-ffabb73ce881.png) 如上图模块中的 module_swutils 就是整个项目最常用的工具类,应该被所有项目依赖。其内容应该与项目业务无关,包括工具类,常量,等等。比如 日志模块的封装,图片加载模块的封装。并使用 ContentProvider 进行自动注册。 ```kotlin object SwUtils { lateinit...

USAGE
AMA
CONCEPT

```kotlin /** * 创建文件 * @param path:文件路径 * @param name: 文件名 */ fun createFile(path: String, name: String): Boolean { val folder = File(path) if (!folder.exists()) { folder.mkdirs() } val file...

SOURCE CODE

# Android:Intent and startActivity [TOC] 本篇文章介绍在 Android 中打开另一个 Activity 的可行性验证 ## 基础知识 ### App 的入口 Activity 和 Icon ```java ``` 任何 App 都有一个默认入口 Activity,一般在 AndroidManifest.xml 中如上配置。 如果将 category 修改为 :`...

CONCEPT