Android随笔

  1. gradle各版本下载地址

  2. Android开发社区 | 码库

  3. 接手老项目,难免遇到前辈的硬编码,怎么办?利用工具剔除出来啊

  4. CrazyShadow 是一个专门为 View 添加阴影效果的库

  5. android模拟器,Genymotion问题:Unable to start the virtual device。原因可能是电脑系统主题被破解过,恢复破解的主题即可

  6. Android-skin-support: 一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验. 只需要两行代码, 就可以实现换肤, 你值得拥有!!!

  7. Android 高清加载巨图方案 拒绝压缩图片

  8. Android 中 WebView 与 js简单交互实现图文混排效果,解决图片自适应屏幕与查看大图问题

  9. Android读取短信验证码并填入输入框的框架

  10. 加速Gradle的构建

# 在gradle.properties文件最下面添加以下语句

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
android.useDeprecatedNdk=true
org.gradle.daemon=true
  • Android studio 亲测实用插件:
    插件的一般使用方式:在类中,按下alt + insert键弹出插入代码的上下文菜单选中即可

    • .ignore :我 们都知道在Git 中想要过滤掉一些不想提交的文件,可以把相应的文件添加到.gitignore 中, 而.gitignore 这个Android Studio 插件根据不同的语言来选择模板,就不用自己在费事添加一些文件了,而且还有自动补全功能,过滤文件再也不要复制文件名了。我们做项目的时候,并不是所有文 件都是要提交的,比如构建的build 文件夹,本地配置文件,每个Module 生成的iml 文件,但是我们每次add,commit 都会不小心把它们添加上去,而gitignore 就是解决这种痛点的,如果你不想提交的文件,就可以在创建项目的时候将这个文件中添加即可,将一些通用的东西屏蔽掉。
    • Android Parcelable code generator:这个是生成实现了Parcelable接口的代码的插件
    • Genymotion:速度较快的android模拟器
    • GsonFormat:快速将json字符串转换成一个Java Bean
    • CodeGlance:用于快速定位代码
    • Android Butterknife Zelezny :配合ButterKnife实现注解,从此不用写findViewById,在Activity,Fragment,Adapter中选中布局xml的资源id自动生成butterknife注解
    • Translation 或者 ECTranslation:Android Studio 翻译插件,可以将英文翻译为中文。
    • eventbus3 intellij plugin:eventbus3.X导航插件
    • Sexy Editor:设置AS代码编辑区的背景图插件
    • Android Studio Prettify:可以将代码中的字符串写在string.xml文件中,选中字符串鼠标右键选择->Extract String Resource,这个插件还可以自动书写findViewById。
    • CheckStyle-IDEA:CheckStyle-IDEA 是一个检查代码风格的插件,比如像命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,你们可以遵从像Google Oracle 的Java 代码指南 ,当然也可以按照自己的规则来设置配置文件,从而有效约束你自己更好地遵循代码编写规范。
    • PermissionsDispatcher plugin:自动生成6.0权限的代码
    • Android On-Device Resource Localization:可用于将项目中的 string 资源自动翻译为其他语言的 Android Studio/IntelliJ IDEA 插件
  • Android 复制文本内容到系统剪贴板

// 从API11开始android推荐使用android.content.ClipboardManager
// 为了兼容低版本我们这里使用旧版的android.text.ClipboardManager,虽然提示deprecated,但不影响使用。
ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// 将文本内容放到系统剪贴板里。
// cm.setText(要复制的文本内容); //此方法deprecated,或者使用下面这个方法  
cm.setPrimaryClip(ClipData.newPlainText("标题",要复制的文本内容));
  • Android 两种方式设置EditText不弹出软键盘
//1.设置焦点在其他控件上:   
android:focusable="false  "  
android:focusableInTouchMode="false  "

//2.设置activity不自动弹出软键盘:  
// 在AndroidManifest.xml设置:  
<activity android:name="需设置隐藏键盘的Activity"  
          android:windowSoftInputMode="stateHidden|stateAlwaysHidden" />  
  • Android RxJava+Retrofit 一次(合并)请求多个接口
    使用RxJava的Merge操作符实现将两个接口Observable合成一个
// 一次(合并)请求多个接口
Observable<Object> merge = Observable.merge(mModel.getRechargeOrdre(mRechargeMoery, mRechargeType), mModel.getPayeeInfo());
//添加到订阅
addSubscription(merge.subscribe(new HttpSubscriber<Object>(new SubscriberResultListener() {
    @Override
    public void onSuccess(Object obj) {
        // 根据返回的数据类型区分
        if (obj instanceof RechargeOrdreBean){
            mRechargeOrdreBean = (RechargeOrdreBean) obj;
        }else if (obj instanceof PayeeInfoBean){
            mView.showPayeeInfo((PayeeInfoBean) obj);
        }
    }

    @Override
    public void onError(HttpErrorException errorException) {
        mView.showMsg(errorException.getMessage());
    }
})));
  • Android RxJava+Retrofit 一次(顺序,嵌套)请求多个接口
    使用RxJava的flatMap操作符实现将两个接口Observable顺序,嵌套执行网络请求
// 添加到订阅
addSubscription(mModel.verifyPayPassword(payPassword)
      // flatMap对Observable进行变换
      // Object第一个请求返回的值,Observable<Object>第二个请求返回的Observable
      .flatMap(new Func1<Object, Observable<Object>>() {
          @Override
          public Observable<Object> call(Object o) {
              // 第一个请求成功则执行下一个请求,失败则直接调用onError方法
              return mModel.userBindBankCard(body);
          }
      })
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .subscribe(new HttpSubscriber<>(new SubscriberResultListener() {
          @Override
          public void onSuccess(Object o) {
             // 成功Todo
          }
          @Override
          public void onError(HttpErrorException errorException) {
              // 失败Todo
          }
      })));
  • Android中去除字符串中所有的空格
/*可以替换大部分空白字符, 不限于空格 
\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个 */
str = str.replaceAll("\\s*", ""); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值