AndroidTips

作者: Juude | 来源:发表于2015-11-17 14:03 被阅读41次

1. Rest

1.1 序列化json自动命名:

json中如果有下划线命名的key,例如 user_name, 但是java代码中希望是驼峰式的命名,例如userName, 如果使用Gson解析可以设置LOWER_CASE_WITH_UNDERSCORES属性

     Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) .create()

或者添加SerializedName的Annotation

    @SerializedName("user_name")
    private final String userName;

2. 裁切图片

3. 资源

  • 资源可以使用
    res.srcDirs = ['src/main/res'_pagea, 'src/main/res_pageb']将资源分在不同的文件夹中

4. View

4.1 View的属性

  • android:fillViewport

4.2 获取当前横竖屏状态

4.3 requestLayout子类没有调用onLayout

4.4 获取子控件相对于父View的位置

4.4 Activity属性

  • windowSoftInputMode
    • 原来窗口resize
    • 原来窗口不变 adjustSpan
    • 原来窗口位移

5. 清除数据

6. AlarmManager

  • alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+(10*1000), pi);

7. 调试

7.1 无法调试

  • 开发者模式中,选择正在调试的应用

解决同步依赖库太慢问题

使用stetho可以更方便地调试

8. Gradle

8.1 防止gradle每次都下载

  • 官网下载安装包,然后加入系统变量,接着使用gradle build 而不是.`/gradlew

8.2 加快gradle编译速度

  • gradle --daemon 代替gradle

9. 安卓系统开发

安装android ROM开发环境所需要的软件

sudo apt-get install git gnupg flex bison gperf build-essential 
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs 
  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev 
  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown 
  libxml2-utils xsltproc

10. 让android studio可以在所有apps里被搜索到

  • 复制下面的代码到~/.local/share/applications
[Desktop Entry]
Comment=
Terminal=false
Name=Studio
Exec=$StudioPATH/studio.sh
Type=Application
Icon=$StudioIconPATH

11. 开发工具

11.1 adb 提示No such file or directory for existing executable

  • 执行sudo apt-get install libc6:i386 libstdc++6:i386

11.2 编译提示 make sure the aapt execute at *aapt can run successfully

  • sudo apt-get install zlib1g:i386

gralde用本地的

修改.idea/gradle.xml

        <option name="distributionType" value="LOCAL" />
        <option name="gradleHome" value="$USER_HOME$/prog/gradle-2.10" />

12. 存储

12.1 SharedPreferences的commit()与apply()

SharedPreferences类的.commit().apply()都可以提交数据,但是apply是异步的,不会阻塞当前线程,然而正因为是异步的,在某些异常情况下(例如程序异常退出)会导致数据没有保存到本地磁盘,引起一些bug,所以如果需要保证保存下来的话,建议用commit()

相关文章

网友评论

本文标题:AndroidTips

本文链接:https://www.haomeiwen.com/subject/whokhttx.html