Android-Collection
Android-Collection copied to clipboard
安卓开发知识点集锦
1. Gist: [Endless RecyclerView OnScrollListener Raw](https://gist.github.com/ssinss/e06f12ef66c51252563e) 2. https://github.com/drakeet/rebase-android/blob/master/app/src/main/java/com/drakeet/rebase/fragment/ListBaseFragment.java
From: https://github.com/android-cn/android-discuss/issues/324 ``` private long[] mHits = new long[3];// 数组长度表示要点击的次数 //android setting 中点击版本的代码例子 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); mHits[mHits.length...
[内存管理(3)-Android内存泄露分析](http://www.jianshu.com/p/c59c199ca9fa)
http://www.jianshu.com/p/662c46cd3b5f
详细请看技术小黑屋:[Android 中 Handler 引起的内存泄露](http://droidyue.com/blog/2014/12/28/in-android-handler-classes-should-be-static-or-leaks-might-occur/?droid_refer=ninki_posts) 这里总结几点: 1 当一个 Android 应用启动的时候,会自动创建一个供应用主线程使用的 Loope r实例。Looper的主要工作就是一个一个处理消息队列中的消息对象。在Android中,所有Android框架的事件(比如Activity的生命周期方法调用和按钮点击等)都是放入到消息中,然后加入到Looper要处理的消息队列中,由Looper负责一条一条地进行处理。主线程中的Looper生命周期和当前应用一样长。 2 当一个Handler在主线程进行了初始化之后,我们发送一个target为这个Handler的消息到Looper处理的消息队列时,实际上已经发送的消息已经包含了一个Handler实例的引用,只有这样Looper在处理到这条消息时才可以调用Handler#handleMessage(Message)完成消息的正确处理。 3 在Java中,非静态的内部类和匿名内部类都会隐式地持有其外部类的引用。静态的内部类不会持有外部类的引用。关于这一内容可以查看:[细话Java:”失效”的private修饰符](http://droidyue.com/blog/2014/10/02/the-private-modifier-in-java/) 要解决这种问题,思路就是不使用非静态内部类,继承Handler时,要么是放在单独的类文件中,要么就是使用静态内部类。因为**静态的内部类不会持有外部类的引用,所以不会导致外部类实例的内存泄露**。当你需要在静态内部类中调用外部的Activity时,我们可以使用弱引用来处理。另外关于同样也需要将Runnable设置为静态的成员属性。注意:一个静态的匿名内部类实例不会持有外部类的引用。 修改后不会导致内存泄露的代码如下 ``` java public class SampleActivity extends Activity { /** * Instances of static...
来源:http://www.wangchenlong.org/2016/02/25/tips/1605/072-android-tips-7/ 应用在启动时, 系统会加载数据, 需要启动完成Application的onCreate方法, Activity的onCreate与onResume方法, 会产生短暂的留白, 不可避免,也可能是黑色, 与应用的主题有关, light是白色, dark是黑色. 一些主流应用都会解决这一问题, 如微信\QQ\网易云音乐等, 但某些应用可能并未注意. 去掉留白需要修改`启动页面`的主题样式, 设置windowBackground属性, 默认是白色, 可以修改为其他颜色或展示Logo图片. ``` true false true @drawable/launch_logo ``` 并且把首页布局的背景设置为透明, 在加载完成后, 再显示广告或其他信息. ``` android:background="@android:color/transparent" ```
常用工具类
- https://github.com/jp1017/NonViewUtils - https://github.com/nisrulz/easydeviceinfo - https://github.com/XXApple/AndroidLibs/tree/master/%E8%BE%85%E5%8A%A9%E5%B7%A5%E5%85%B7%E7%B1%BBUtils
我会在这里总结下最近开发 jni 遇到的坑: 先来几个 `jni 基础知识`的博客: 1. [Android 开发 之 JNI入门 - NDK从入门到精通](http://blog.csdn.net/shulianghan/article/details/18964835) 2. [Android JNI编程—JNI基础](http://www.jianshu.com/p/aba734d5b5cd) 上面两个基本涵盖了 jni 开发说需要的知识点,好了,下面开始填坑: 先来个问题: android studio 下 jni 开发,还需要编写 Android.mk 文件吗? 哈哈,来两个坑吧: 1. [Android...
1.1 手机常见分辨率: 4:3 | 1 | 2 | | --- | --: | | VGA: 640×480 (Video Graphics Array) | QVGA: 320×240 (Quarter VGA) | | HVGA: 480×320 (Half-size VGA)...
## SnakerBar [Android Snackbar花式使用指南](http://www.jianshu.com/p/cd1e80e64311) 我给放到这个 Gist: https://gist.github.com/jp1017/81ce65673a959e12b84156b1b3c0c35e Snackbar 基本使用: https://github.com/jp1017/Android-Collection/issues/5 ### Snackbar 封装: - https://github.com/AntonyGolovin/FluentSnackbar - https://github.com/rey5137/material/blob/master/material/src/main/java/com/rey/material/widget/SnackBar.java#L755