Retrofit2文件上传与下载

节选自:Retrofit2文件上传与下载


第二步:创建用于描述网络请求的接口

public interface Api {
    /**
     * 上传
     * Multipart 这个注解代表多表单上传
     *
     * @param partList 表单信息
     * @return .
     */
    @Multipart
    @POST("服务器地址(就创建retrofit设置的基站地址后面的具体地址)")
    Call<BaseBean> upLoading(@Part List<MultipartBody.Part> partList);
}

继续阅读Retrofit2文件上传与下载

Android获取当前应用版本号

import android.content.Context;
import android.content.pm.PackageManager;

public class AppVersionUtils {
    /**
     * 获取当前app version code
     *
     * @param context
     * @return
     */
    public static int getVersionCode(Context context) {
        int versionCode = 0;
        try {
            versionCode = context.getPackageManager().
                    getPackageInfo(context.getPackageName(), 0).versionCode;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return versionCode;
    }

    /**
     * 获取当前app version name
     *
     * @param context 上下文
     * @return
     */
    public static String getVersionName(Context context) {
        String versionName = "";
        try {
            versionName = context.getPackageManager().
                    getPackageInfo(context.getPackageName(), 0).versionName;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return versionName;
    }
}

Android中内存泄露与如何有效避免OOM总结

节选自:Android中内存泄露与如何有效避免OOM总结


三、预防OOM的几点建议

Android开发过程中,在 Activity的生命周期里协调耗时任务可能会很困难,你一不小心就会导致内存泄漏问题。下面是一些小提示,能帮助你预防内存泄漏问题的发生: 继续阅读Android中内存泄露与如何有效避免OOM总结

Android Jetpack

节选自:Android Jetpack


Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。

Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。

Android数据库高手秘籍

Android数据库高手秘籍(一)——SQLite命令

Android数据库高手秘籍(二)——创建表和LitePal的基本用法

Android数据库高手秘籍(三)——使用LitePal升级表

Android数据库高手秘籍(四)——使用LitePal建立表关联

Android数据库高手秘籍(五)——LitePal的存储操作

Android数据库高手秘籍(六)——LitePal的修改和删除操作

Android数据库高手秘籍(七)——体验LitePal的查询艺术

Android数据库高手秘籍(八)——使用LitePal的聚合函数

Android数据库高手秘籍(九),赶快使用LitePal 2.0版本吧

Android数据库高手秘籍(十),如何在Kotlin中更好地使用LitePal

我为Dexposed续一秒——论ART上运行时 Method AOP实现

节选自:我为Dexposed续一秒——论ART上运行时 Method AOP实现


两年前阿里开源了Dexposed 项目,它能够在Dalvik上无侵入地实现运行时方法拦截,正如其介绍「enable ‘god’ mode for single android application」所言,能在非root情况下掌控自己进程空间内的任意Java方法调用,给我们带来了很大的想象空间。比如能实现运行时AOP,在线热修复,做性能分析工具(拦截线程、IO等资源的创建和销毁)等等。然而,随着ART取代Dalvik成为Android的运行时,一切都似乎戛然而止。

今天,我在ART上重新实现了Dexposed,在它能支持的平台(Android 5.0 ~ 7.1 Thumb2/ARM64)上,有着与Dexposed完全相同的能力和API;项目地址在这里 epic,感兴趣的可以先试用下:) 然后我们聊一聊ART上运行时Method AOP的故事。

史上最简单Android源码编译环境搭建方法

节选自:史上最简单Android源码编译环境搭建方法


有史以来,Android源码编译环境的搭建始终是一件麻烦事儿。网上有数不清的文章介绍如何编译Android源代码,但是他们要么方法复杂、步骤太多;要么自称解决了一些编译问题(需要修改头文件,系统配置等),让人对其可信度产生质疑。有的童鞋硬着头皮照做了,但是由于伟大的GFW,大部分都死在了第一步——repo脚本都下载不下来,就算下载过了过不了gerrit那一关。另外,就算你具备科学上网的能力,下载时间又成为了拦路虎;普通的VPN通常需要下载七八个小时,简直就是痛不欲生。久而久之,很多人对下载编译Android源码望而却步。

今天,我给大家提供一个极其简单、稳定的方案,来解决Android源码的下载编译问题。

首先,下载问题可以通过镜像解决;清华镜像 和 科大镜像 都是非常不错的选择,正常情况下一到两个小时即可下载完一个Android源码分支。