android学习
yaonga
这个作者很懒,什么都没留下…
展开
-
Volley读书笔记
Volley读书笔记 谈谈自己读Volley的收获:1.多线程技术:通过主线程+CacheDispatcher缓存线程+NetworkDispatcher网络请求数据线程,多线程并发处理下载网络资源。多线程间通过ResponseDelivery的实例ExecutorDelivery传递数据,事实上,还是要通过 new ExecutorDelivery(new Handler(Looper.原创 2017-02-07 15:10:10 · 226 阅读 · 0 评论 -
Fragment嵌套ViewPager,ViewPager中子页面Fragment使用
一、概述记录自己使用Fragment中嵌套ViewPager,ViewPager子页面也是Fragment的过程,子页面Fragment内容是图片+视频。二、效果图图片 视频 三、ViewPager一屏显示多个页面要点 1. 增加布局属性android:clipChildren=”false”,指在子View进行绘制时不要去裁切它们的显示范围 2. 设置View原创 2018-01-25 13:38:25 · 1802 阅读 · 0 评论 -
React-Native项目redux框架理解
转载至:https://www.cnblogs.com/fenglh04/p/redux.html转载 2018-05-11 17:15:52 · 427 阅读 · 0 评论 -
android内存优化笔记
1.一个app对应一个进程分配一个虚拟机 2.查看进程,进入adb目录 adb shell ps dumpsys meminfo com.ioter.cloth(进程名称/应用包名) 3.内存查看 As Android Monitor Android Monitor Device(DDMS,查看堆内存分配情况) 4.内存优化a.数据结构优化 字符串拼接,用StringBui...转载 2018-07-10 15:51:42 · 122 阅读 · 0 评论 -
Tinker 接入
一.原理 二.使用步骤 1.工程根目录的build.gradle中添加依赖 在项目的build.gradle中,添加tinker-patch-gradle-plugin的依赖:buildscript { repositories { mavenLocal() google() jcenter() } depend...原创 2018-07-24 15:11:38 · 879 阅读 · 0 评论 -
android 基本混淆
-optimizationpasses 5 # 指定代码的压缩级别-dontusemixedcaseclassnames # 是否使用大小写混合-dontpreverify # 混淆时是否做预校验-verbose # 混淆时是否记录日志-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时...转载 2018-07-19 17:20:15 · 117 阅读 · 0 评论 -
android使用so注意点
https://www.cnblogs.com/android-blogs/p/5867337.html转载 2018-07-26 09:22:13 · 131 阅读 · 0 评论 -
As查看sdk代码
链接:https://blog.csdn.net/a_zhon/article/details/52231079转载 2018-07-20 16:04:50 · 938 阅读 · 0 评论 -
EventBus源码解读
一.概述 EventBus用于事件的发布和订阅,订阅者订阅事件到总线,发送者发布事件。 二.使用 1.订阅者订阅事件: EventBus.getDefault().register(this); 在this中要声明事件接收方法(方法用注解注明,或一定格式的格式命名),接收的入参是2中post的对象类型(以便于post调用该方法) 2.发布者发布事件: EventBus.getDefa...原创 2018-08-01 14:44:10 · 146 阅读 · 0 评论 -
android屏幕尺寸、分辨率、像素密度(dpi)、dip、density、px
一 屏幕尺寸 5.1寸屏,这不是已经告诉你屏幕有多大了吗?指的是屏幕对角线的长度。 1英寸 == 2.54cm 二 分辨率 1920px x1080px 指在宽和高边上各包含1920/1080个像素点。 三 像素密度 跟分辨率和屏幕尺寸相关。单位英寸上包含的像素点个数; dpi = 屏幕对角线上的像素点个数 / 屏幕尺寸 四 px 计量单位。 五 dip 衡量密度的一个...原创 2018-08-30 15:02:13 · 825 阅读 · 0 评论 -
weex入门
weex入门1.简介2.环境搭建3.将weex集成到Android项目1.简介weex平台通过编译.we或者.vue文件,生成js脚本文件,使得各个平台可以引入weex包渲染js脚本,达到和React-Native混合开发的目的。2.环境搭建安装nodejs 具体如何安装nodejs请移步官网 https://nodejs.org/en/安装完成后检测是否安装成功命令终端:nod...原创 2019-01-11 17:18:10 · 249 阅读 · 0 评论 -
Gradle多渠道打包应用apk
1.背景: apk可能要求有多种配置要求,比如访问的ip不同,配置文件资源不同等,这就要求可以一次性打包多个apk,避免手动多次打包; 2.原理: a.在app的build.gradle文件种配置:android { .... sourceSets { //设置各个渠道的目录文件 main { jniLibs.srcDirs原创 2017-11-13 17:54:33 · 188 阅读 · 0 评论 -
Android Fragment
1.添加 public class MainActivity extends FragmentActivity { private contentFragment contentfragment;@Override protected void onCreate(Bundle savedInstanceState) { super.onC转载 2017-02-28 17:39:50 · 256 阅读 · 0 评论 -
GitHub相关android内存泄漏
GitHub相关android面试题笔记Activity的泄漏是内存泄漏里面最严重的问题,它占用的内存多,影响面广a.内部类引用导致Activity的泄漏。(学习未注意知识点:非静态内部类 和 匿名类 都会潜在的引用它们所属的外部类。但是,静态内部类却不会。)public class SampleActivity extends Activity {转载 2017-02-09 10:09:28 · 336 阅读 · 0 评论 -
android图片加载框架ImageLoader涉及的设计模式
android图片加载框架ImageLoader设计模式1.建造者模式 毫无疑问,应用ImageLoader的时候,首先要配置ImageLoaderConfiguration参数;2.单例模式 获取ImageLoader实例;3.装饰者模式 内存缓存和文件缓存:MemoryCache 和 DiskCache 都使用了装饰者模式进行设计,功能的拓展只要针原创 2017-02-04 15:53:45 · 648 阅读 · 0 评论 -
同个应用不同进程异步回调数据交互
1.背景:A和B进程在同个应用当中。B进程需要得到A进程的接口异步返回数据,我们都知道,进程间是不能访问数据的,这个时候,通过service+broadcast可完成数据交互。 2.实现: a.首先,创建B进程访问数据接口工具类:public class DataHelper{ public static final String ACTION = "..."//service acti原创 2017-02-20 17:01:39 · 934 阅读 · 0 评论 -
android获取view宽高的时机
关键点:获取宽高应该在view的onLayout之后,这个时候,view已经确定算出宽高。 error:/** * 在onCreate,onResume方法中调用,用于获取TextView的宽度和高度都是0 */private void getTextHeightAndWidth() { // 我们定义的用于获取宽度和高度的组件 titleText = (转载 2017-02-24 11:24:02 · 1467 阅读 · 0 评论 -
利用java反射实现独立模块功能
应用背景:如果说A模块中有B模块需要实现不同功能的独立模块,利用反射可以初始化出B模块功能对应的实例。eg:跳转同一页面显示不同标题重点:建立一个抽象类,表示功能基础单元。如:public abstract class BaseModel{ protected void initTitle(){ /base.... }}利用反射实例化功能单元。 3. 建立独自功能的类:原创 2017-05-05 10:52:56 · 739 阅读 · 0 评论 -
工作线程(耗时操作)与UI线程实现异步更新
概述:工作线程A(多任务)执行期间,把单一任务的结果返回到UI线程更新。实现: 创建基础流程类(两个handler)public abstract class BaseQueueThread{ /** * 设置处理线程、ui处理流程,由子类实现 */ protected abstract Object doInWork(int integer);//耗时操作原创 2017-05-05 17:43:48 · 660 阅读 · 0 评论 -
初学android自定义Camera拍照并查看图片
1.打开相机 a.预览拍摄图片,需用到SurfaceView,并且实现其回调函数implements SurfaceHolder.Callback; activity_camera.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/an原创 2017-06-30 15:38:28 · 441 阅读 · 0 评论 -
利用DexClassLoader解决方法越界
背景: Android工程方法数超过65535,则会提示编译错误(jar包太多)。为了减少jar包,可将一部分jar包转成dex文件(dex:andorid系统对jar的一些优化处理),dex文件在运行期间通过DexClassLoader加载至内存,从而避免方法数越界。 原理: 1.使用ClassLoader的好处: 扩充jar文件; 修改Framework中的已有类文件; 2.为什么使原创 2017-08-08 09:54:14 · 728 阅读 · 0 评论 -
andorid单线程断点续传下载
1.用途 : 学习android4大组件的良好实例 , 关键知识点有 : a.Activity如何与Service交互数据; b.下载为何要使用Service?Service处于后台组件,便于与多个Activity交互,即使app没有处于当前应用页面,也能进行下载; c.保存当前下载文件的下载量 d.Service通过BroatCast广播更新UI数据; e.非主线程通过Handler发送原创 2017-07-28 16:40:32 · 321 阅读 · 0 评论 -
android.support.v4.app.Fragment源码解析
Fragment最基础功能使用FragmentManager fm=getFragmentManager(); FragmentTransaction transaction=fm.beginTransaction(); mFirstFragment=new FirstFragment(); transaction.add(R.id.fragment,mFirstFragment);原创 2017-08-14 15:15:29 · 1039 阅读 · 0 评论 -
WebView配置大全
WebView配置大全mWebView.setDrawingCacheEnabled(true); WebChromeClient webChromeClient = new WebChromeClient(); mWebView.setWebChromeClient(webChromeClient); WebSettings webSetting...原创 2019-05-06 14:14:05 · 1583 阅读 · 0 评论