wufan's blog

标签 · Android

首页

关于

loading..
AndroidAndroid Studio

android-studio-实用技巧

  • 打jar包
    android studio 默认提供的是aar包,如果要打成jar包的话,就要自己写gradle task,在库工程的build.gradle文件中添加一下代码:
    task makeJar(type: Copy) {
     delete 'build/libs/mysdk.jar'
     from('build/intermediates/bundles/release/')
     into('build/libs/')
     include('classes.jar')
     rename ('classes.jar', 'mysdk.jar')
    }
    makeJar.dependsOn(build);
    
    然后在终端执行命令打出jar包
    gradlew makeJar
    
  • 引用aar包
    将aar拷贝至lib目录,在module中的build.gradle文件中添加以下代码
    repositories { flatDir { dirs 'libs' } }
    dependencies {
    compile(name: 'aar_name', ext: 'aar')
    }
    

更多
loading..
Android

Android中AIDL的工作原理

在上一篇文章中Android中AIDL的使用详解介绍了AIDL的使用流程,这篇文章我们说说AIDL的工作原理。

IPC

在这之前我们先简单说一下IPC,IPC是Inter-Process Communication的缩写,是进程间通信或者跨进程通信的意思,既然说到进程,大家要区分一下进程和线程,进程一般指的是一个执行单元,它拥有独立的地址空间,也就是一个应用或者一个程序。线程是CPU调度的最小单元,是进程中的一个执行部分或者说是执行体,两者之间是包含与被包含的关系。因为进程间的资源不能共享的,所以每个系统都有自己的IPC机制,Android是基于Linux内核的移动操作系统,但它并没有继承Linux的IPC机制,而是有着自己的一套IPC机制。

更多
loading..
Android

Android中AIDL的使用详解

为了说的深入浅出一点,我们先从AIDL的作用和使用说起,然后再开始介绍一些概念和工作原理。

AIDL用来做什么

AIDL是Android中IPC(Inter-Process Communication)方式中的一种,AIDL是Android Interface definition language的缩写,对于小白来说,AIDL的作用是让你可以在自己的APP里绑定一个其他APP的service,这样你的APP可以和其他APP交互。

更多
loading..
Android

Android中全局异常的捕获

应用的crash是让人很蛋疼的问题,在开发测试的时候还能根据日志输出什么的进行排查修复,但是应用发布以后,用户的随意性访问出现测试时未知的Bug导致我们的程序crash,此时我们是无法直接获取的错误log的,也就无法修复Bug。所以这时候我们就需要一个能全局捕获异常,并且将这个异常信息上传到服务器的功能,以便根据收集到的异常信息,在后期的版本中进行修复,改善用户体验。

更多
loading..
Android

Android中反射的简单应用

自己对反射的理解和应用还处于比较浅显的阶段,写这篇文章更多在于整理总结,也就是帮助自己进一步的理解和学习反射机制。

反射

反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力

java中类反射

反射是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性和方法
简单总结这些定义,那就是反射可以让我们获得一个类的所有信息,包括私有属性和私有方法,对于我们这种小白,先知道这点就可以啦,那在java中如何使用发射呢。这里我们随便创建一个类来演示。比如说创建一个Book类:

public class Book implements Parcelable
{
    private int id=1;
    private String name="android";

    private String author="wf";

    private String getName()
    {
        return name;
    }
}

更多
Android

Android中退出应用的实现

退出应用是项目开发中很基本的一个需求,这个功能很简单,也有很多实现的方式,这里把自己知道的退出方法做一个整理,跟大家交流分享一下。

更多
loading..
AndroidAndroid Studio

Android-Studio:使用Gradle构建不同版本的APP(构建变体)

Android Studio(我使用的Studio版本是2.0)中有一个构建变体的功能,默认位于左下角

那这个功能是做什么用的呢,一般来说我们在做项目的时候,可能有这样的需求,一个项目中需要有不同版本,比如说免费版,收费版,周年庆版啦等等,这些版本大部分功能和模块是一样的只是部分不同,以前可能是通过svn或者git上建立分支来进行版本控制,但维护起来很麻烦。所以构建变体这个功能用官方的说法就是你可以在一个项目里面构建不同的版本,对,而且打包的时候可以一次性打包所有版本,是不是超级爽。英语好的同学可以看官方的教程Configure Build Variants

更多
Android

WebView加载速度优化

在做混合应用的时候,有几个痛点,一个是无网络无法使用,还有一个是受网络环境影响的网页加载速度。今天就这两个问题,和大家交流一下自己的经验。

离线缓存

这个比较容易,开启webView的缓存功能就可以了。

WebSettings settings = webView.getSettings();
settings.setAppCacheEnabled(true);
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);//开启DOM缓存,关闭的话H5自身的一些操作是无效的
settings.setCacheMode(WebSettings.LOAD_DEFAULT);

更多
12