【转】android中避免进入页面EditText自动弹出软键盘

转载自:android中避免进入页面EditText自动弹出软键盘


  1. 说明
    我们在开发项目的过程中,一定会有这样的需求,就是在刚进入有EditText的页面时,不让软键盘弹出,只有用户自己手动的去触摸EditText输入框时候才让软键盘自动弹出,这样做其实也是提高用户体验,让用户可以切身的体验到这样做的好处,那么接下来我们就来看下在代码中该如何实现这样的需求。
  2. 具体做法
    针对于这样的需求,有2种处理方式:
    2.1 第一种是在清单文件中对应的Activity中配置:

    //stateHidden: 隐藏软键盘
    //adjustPan: 保证控件不会因为输入法的弹出而发生变形
    
    <activity
        android:name=".activity.LoginActivity"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        android:windowSoftInputMode="stateHidden|adjustPan" />

    2.2 第二种是在onCreate()方法中写:

    //避免进入页面EdiText自动弹出软键盘
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

注意:
如果是采用第二种方式的话,建议将这句代码写到BaseActvity或者BaseFragment的基类中,有利于简化代码的书写。

这些年,我所经历的所有面试|写给正在求职的 Androider

节选自:这些年,我所经历的所有面试|写给正在求职的 Androider


面试涉及知识点/体系/书籍推荐

以下是面试中遇到的问题整理,有一些被我整理已被整理成博文,其他的都是我这些年积累的面试笔记,虽然不是很全面,但是已经是我保留的全部了。希望有帮助。

网络相关

设计模式

Android

其他

*排序算法

书籍推荐

  • 《Java编程思想》
  • 《Effective Java》
  • 《突破Java程序员基本功的16门课》
  • 《深入理解Java虚拟机》
  • 《Android高级工程师进阶》
  • 《Android研发录》
  • 《Android开发艺术探索》
  • 《打造高质量Android应用》
  • 《Android应用性能优化》
  • 《安卓内核剖析》
  • 《深入安卓卷1》
  • 《深入安卓卷2》
  • 《Android系统源代码情景分析》
  • 《巧用Gradle构建Android应用》
  • 《Android高薪之路》
  • 《Android群英传》
  • 《程序员修炼之道–从小工到专家》
  • 《代码的未来》
  • 《第一行代码》

【转】Android recyclerview的滑动到指定的item

转载自:Android recyclerview的滑动到指定的item


注意点

1.滑动到指定位置的方法要写在数据真正加载完成以后,而不是加载数据方法的后面。
2.指定的位置是否可见。

快速定位
public static void MoveToPosition(int n) {
    manager.scrollToPosition(n);
}
缓慢定位(借鉴网络上整理)

继续阅读【转】Android recyclerview的滑动到指定的item

MVC, MVP and MVVM 对比

转载自:Android Architecture Samples


Comparing MVC, MVP and MVVM in android through a complete movie search app

This is the complementary repository to the series of articles on my website.

no-architecture app:

branch: no-architecture

articleandroid architecture: Part 1: introduction

Model-View-Controller (MVC) app:

branch: mvc

articleandroid architecture: Part 2: MVC

Model-View-Presenter (MVP) app:

branch: mvp

articleandroid architecture: Part 3: MVP

Model-View-ViewModel (MVVM) app using RxJava:

branch: mvvm-rxjava

articleandroid architecture: Part 4: MVVM with RxJava

Model-View-ViewModel (MVVM) app using LiveData and how it compares to RxJava:

branch: mvvm-livedata

articleandroid architecture: Part 5: MVVM with LiveData

Model-View-ViewModel (MVVM) app using LiveData and ViewModel:

branch: mvvm-liveData&viewModel

articleandroid architecture: Part 6: MVVM with LiveData and ViewModel

Model-View-ViewModel (MVVM) app using LiveData and ViewModel:

branch: mvvm-liveData&viewModel-revised

articleandroid architecture: Part 7: ViewModel with LiveData and RxJava

Model-View-Presenter (MVP) app using ‘easy-mvp’ library:

branch: mvp-easymvp

articleEasy MVP library for android

【转】Android进程内存简单排查

转载自:Android进程内存简单排查


前言

本文旨在仅用adb的命令快速排查内存问题

分析步骤

第一步:确认你的应用包名

本地有安装包时:aapt dump badging [yourapp.apk],你可以看到package: name=’com.xxx.xxxx’等信息及权限申请信息。

本地没有安装包,仅手机上安装时:adb shell pm list packages,查看已安装列表,肉眼识别可能是哪个。不想肉眼识别,可以启动对应app,然后执行:adb shell dumpsys window|findstr mCurrentFocus

第二步:确认你的应用当前有几个进程

adb shell “ps|grep com.xxx.xxxx”

也可以确定当前界面功能在哪个进程:

adb shell “dumpsys activity|grep com.xxx.xxxx”

在输出的堆栈中,找到mFocusedActivity部分的信息,底部进程列表会标记(top-activity)

当然adb shell “activity acitvities” 输出的信息中可以按照包名过滤,就能看到当前有哪些activity并且在哪个进程

第三步:查看指定进程的内存信息

adb shell dumpsys meminfo com.xxx.xxxx:xxxprocess

此处通过输出信息中的 Activities可以反复操作进出activity验证是否存在最浅显的Activity泄漏,通过对比Pss Total等的增长信息可以确定是否有其他内存泄漏。

第四步:进一步分析

adb shell

am dumpheap com.xxx.xxxx:xxxprocess /data/local/tmp/xxx.hprof

以上获取内存dump,然后取到pc本地

adb pull /data/local/tmp/xxx.hprof /pc本地目录/xxx.hprof

转换格式为ddms可识别

sdk目录/platform-tools/hprof-conv.exe /pc本地目录/xxx.hprof /pc本地目录/xxx-conv.hprof

拖动xxx-conv.hprof到mat就可以详细分析内存堆栈中的Activity对象及其他信息了


注:通过 am dumpheap 命令生成的文件可以直接被 Android Studio 打开