Escnqh

Blog of Escape4nqh's life


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 留言

  • 搜索

一个自用解决内存泄漏问题的MVP模式框架

发表于 2017-11-30 | 分类于 Android笔记 | | 阅读次数
MVP4Peelson一个自用解决内存泄漏问题的MVP模式框架 索引-Why -How -参考书目 WhyMVP模式广泛运用于Android项目开发实战之中,具有易于维护、易于测试、松耦合、复用性高等特点,但是当Presenter进行一些耗时操作时,由于其持有了View的强引用,如果在耗时操作之前此View层被销毁会导致Presenter一直持有View对象而View对象无法收回,此时就发生了内存泄漏。 而通常的解决办法是通过自己实现一个ActivityCollector来解决: 1234567891011121314151617181920public class ActivityCollector { public static List<Activity> activities = new ArrayList<>(); public static void addActivity(Activity activity) ...
阅读全文 »

2017年的十一月

发表于 2017-11-29 | 分类于 杂谈笔记 | | 阅读次数
先说说项目的推进吧,整个十一月发生了很多事情, AR留影项目做的并不顺利,在(完全)没有什么进展的情况下,我凭借自己用OpenCV做的一个标记特征点的Demo过了校级大创的中期答辩(虽然不管其他项目做的有多烂都过了,我告诉自己我这个跟他们的可不一样)。我自己跑通了移植到Android的OrbSlam(包含可用的接口,处理好了JIN层)项目地址需要注意的是在使用时需要手动在Android.mk文件中配置你的OpenCV路径(基于AndroidStudio3.0和gcc编译,你可能需要配置),然后就是编译成功生成的是armeabi-v7a的动态库,需要你自己拷贝到Libs目录下。 做完这一部分得到了覃忠和同学的帮助,他对cpp的掌握OpenCV的使用经验以及cmake编译的知识让项目的进度更快,在后面对OrbSlam的使用这一方面,我们还会一同继续努力。 为了赶项目开发的进度,在大君的提醒下我们开始了项目业务方面的开发,我们简单梳理了一下业务逻辑分配了小组分工。现在依旧比较头疼的部分 ...
阅读全文 »

在你的Android项目中使用cpp/cpp第三方库

发表于 2017-10-10 | 分类于 Android学习笔记 | | 阅读次数
今天终于跑完了Google协同育人项目的协议签署,茫然四顾发现自己在一个巨坑之中==这段时间要加班加点学习NDK学习混编,我的初步的思路是利用orb-SLAM算法进行建模,拿到模型再做其他的都好说,好歹是一个开始,要接着往前走。下面就开始将我学习的过程中一些笔记和心得记录下来。 相关概念首先我们要使用的工具是NDK使用Android NDK可以构建任何一段原生代码将其与Android应用一起打包。 什么是NDKNative Development Kit(NDK)是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。详情查看官方文档:https://developer.android.com/ndk/index.html(实际上Android Developer官方提供的只有Android.mk和Application.mk对项目构建的方法==,后面再仔细叙述) 而使用java原生接口(JNI,Java Native I ...
阅读全文 »

新思路团队Android小组技术栈

发表于 2017-09-17 | 分类于 Android学习笔记 | | 阅读次数
一、 基础篇 1、Android Studio 熟练使用:包括环境的配置和编译器的使用 1.1 AndroidStudio环境配置(1) jdk下载和环境配置下载网址:http://www.oracle.com/technetwork/java/javase/downloads/index.html环境配置:jdk8会自动配置环境变量,在cmd中输入javac可查看是否已经成功配(如若未自动设置环境变量,自行百度设置方法)(2) AndroidStudio下载中文社区:http://www.android-studio.org/官网(需要翻墙):http://developer.android.com/studio/index.html 1.2 AndroidStudio的使用(1) AndroidSDK下载(2) AndroidStudio常用快捷键的使用(3) 在AndroidStudio中使用git进行版本控制以及利用github实现远程仓 库使用和项目分支管理(4) 在An ...
阅读全文 »

观察者模式的学习和应用

发表于 2017-08-12 | 分类于 Android学习笔记 | | 阅读次数
停了有些日子没有管我的博客,这段时间经历了期末考试和服务外包的比赛。今天刚刚结束,刚从武汉回到家里休息了一天,今天早上还约了人来把家里的光纤修好了。现在可以好好整理一下在比赛时候的一些小小的总结。这次的比赛收获的更多是一种应用和熟练,把自己之前学过的一些知识得以运用(才发现是如此的生疏。和队友的构想,讨论,舍弃太自我的想法,长时间的配合和解决一个一个问题,熬过一个一个夜,慢慢整理出的作品。也算是费尽一番心血。 这篇博客就选取其中的一点心得作为记录,作为对观察者模式的学习和应用总结。 何为观察者模式 观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 它将观察者和被观察者的对象分离开。提高了应用程序的可维护性和重用性。 实现观察者模式有很多形式,一种是“注册—通知—撤销注册”的形式。 观察者Observer:所有潜在的观察者必须实现观察者接口,这个接口只有update方法,当主题改变时,它被调用。具体观察者Concrete ...
阅读全文 »

XML复习知识总结

发表于 2017-06-12 | 分类于 技术笔记 | | 阅读次数
java开发工具的使用 Intellij IDEA环境使用 Tomcat使用 xml:平台语言沟通的桥梁 校验:使用浏览器xml语法: XML(eXtensible Markup Language),可扩展标记语言。“可扩展”,即用户可以自定义标记。 文档声明:<?xml version="1.0" encoding="GB2312" standalone="yes" ?>XML是一种元语言。<?xml version=“1.0”?>书写xml文件应注意:xml声明语句必须作为文件的第一行; 根标记:xml有且仅有一个跟标记,其他标记必须封装在根标记中,文件的标记必须形成树状结构; 规范的XML:符合W3C制定的规则; xml和HTML的主要区别:① HTML的标记是固定的,预定义的,不可扩展的;而XML的标记是可扩展的,是可以由用户自定义的;② HTML的标记说明了信息的显示格式;而XML ...
阅读全文 »

使用OkHttp

发表于 2017-06-11 | 分类于 Android学习笔记 | | 阅读次数
首先就是导依赖: compile 'com.zhy:okhttputils:2.0.0' HttpURLConnection和OkHttp的比较● HttpURLConnection有的API,OkHttp基本上都有(你有我有全都有呀,哈哈哈) ● HttpURLConnection和OkHttp都支持Https,流的上传和下载,超时,IP6、连接池等等 ● OkHttp比HttpURLConnection具有更好的同步异步请求、缓存机制,支持HttpDNS、重定向、Gzip压缩,平台适应性、很好的服务器IP的转换、直接Socket通信,支持拦截器等等。 看到这么多机制,是不是觉得很强大,通过Socket直接通信,以及很好的缓存机制,Gzip对于Http头部的压缩传输。自然对于网络请求这块使应用更加省流量、请求的更快。OkHttp对于Https和HttpDNS的支持,使得应用的网络通信安全性更高。当然说了它的好,现在也来说说它的不好之处: ● OkHttp不支持优先级 ...
阅读全文 »

使用Retrofit框架

发表于 2017-06-07 | 分类于 Android学习笔记 | | 阅读次数
先添加几个权限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> build.gradle添加依赖,下面会用到的也在这里了: compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0' compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-gson:2.0.2' compil ...
阅读全文 »

ButterKnife的使用

发表于 2017-06-07 | 分类于 Android学习笔记 | | 阅读次数
ButterKnife-- 项目地址:https://github.com/Jak eWharton/butterknife 都说程序员都是比较懒的,什么事情都想着让程序自动化帮忙减轻工作量,这个开源库可以让我们从大量的findViewById()和setonclicktListener()解放出来,其对性能的影响微乎其微(查看过Butter Knife的源码,其自定义注解的实现都是限定为RetentionPolicy.CLASS,也就是到编译出.class文件为止有效,在运行时不额外消耗性能,其是通过java注解自动生成java代码的形式来完成工作),其也有一个明显的缺点,那就是代码的可读性差一些,但了解了之后,上手也很快。。。 解放控件对象实例化也就是 findViewById(),一直以来的做法都是一个个定义,然后在 setContentView() 或 inflate() 之后一一来findViewById()进行实例化,而使用 ButterKnife,你只需要在代码中 使用注解 ...
阅读全文 »

handler和AsyncTask学习笔记

发表于 2017-06-07 | 分类于 Android学习笔记 | | 阅读次数
AsyncTask实现的原理和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 使用的优点: 简单,快捷,过程可控 使用的缺点: 在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来. Handler异步实现的原理和适用的优缺点在Handler 异步实现时,涉及到 Handler, Looper, Message,Thread四个对象,实现异步的流程是主线程启动Thread(子线程)运行并生成Message-Looper获取Message并传递给HandlerHandler逐个获取Looper中的Message,并进行UI变更。 使用的优点: 结构清晰,功能定义明确对于多个后台任务时,简单,清晰 使用的缺点: 在单个后台异步处理时,显得代码过多,结构过于复杂(相对性) AsyncTask介绍 ...
阅读全文 »
12
大胖倪的慢灵魂

大胖倪的慢灵魂

19 日志
6 分类
16 标签
GitHub Facebook weibo
友情链接
  • 友仔倩颖
  • 友仔小奇
  • 友仔大君
  • 友仔皮皮锐
  • 友仔鱼和羊
© 2017 大胖倪的慢灵魂
由 Hexo 强力驱动
主题 - NexT.Muse    |