2016-09-06 JustWe
众所周知,Android的设计架构一直为人所诟病,模块的分割不清,很容易造成新手的困惑和迷茫,并且写出来的代码非常混杂,Activity即包含UI的处理,还包括数据的具体处理,让一个Activity弄出好几千行的容量,而且代码非常不清晰,可读性比较差。 所以在Android的开发过程中,一直没有一个统一的开发模式,MVC、MVP、MVVM都有出现,不过之前Google在Github开源的一个开源库to-do-mvp ,Google提供了他们对MVP的一个范式,我们一次为基础谈谈Android 的MVP的应用。 What is MVP? MVP 指的是“models-views-pre 继续阅读 »
2014-04-02 码农明明桑
我们的常用的系统中,程序的工作通常是有事件驱动和消息驱动两种方式,在Android系统中,Java应用程序是靠消息驱动来工作的。 消息驱动的原理就是: 1. 有一个消息队列,可以往这个队列中投递消息; 2. 有一个消息循环,不断从消息队列中取出消息,然后进行处理。 在Android中通过Looper来封装消息循环,同时在其中封装了一个消息队列MessageQueue。 另外Android给我们提供了一个封装类,来执行消息的投递,消息的处理,即Handler。 more 在我们的线程中实现消息循环时,需要创建Looper,如: cla 继续阅读 »
2018-10-17 Roger
Android P Notification 那些你不知道的坑 Android Pie 已经发布许久,相信大家已经做过了 Android P 版本的适配,如果不升级 Target SDK 来说的话,问题不大,基本没有什么工作量。但若是需要升级 Target SDK 到 28 的话,如果是 MESSAGE 的类型的 Notification 是有一些官方文档没提到的坑,在这总结一下: 继续阅读 »
2018-05-07 Mystery0 M
Java部分(基础) 基础部分1 https://www.imooc.com/learn/85 1. 基本的语句(if else这些) 2. 数组,函数 基础部分2 https://www.imooc.com/learn/124 1. 类和对象(构造函数、静态变量、静态方法) 2. 继承(方法重写、抽象类) 3. 接口 基础部分3 1. 集合,泛型,Map,迭代器(Iterator) 2. 常用的工具类(String、File、Date、Calendar、) 3. 异常处理(try……catch) 4. 输入输出流(可以后面在Android需要时学习) 5. 多线程(可以后面在Android需要时学习) Android(基础 继续阅读 »
2016-03-05 Roger
最近工作上遇到了广播接受不到的问题,查看了《Android 开发艺术探索》一书中关于广播的发送和接受的章节(P356-P362)。其中(P358)介绍了从Android 3.1 之后广播的一些区别 。 从 Android 3.1 开始,系统为所有的广播都默认添加了FLAG_EXCLUDE_STOPPED_PACKAGES 标志。所有处于停止状态的应用将无法接受到该标志的广播。注意,只有两种情况下应用才会处于停止状态: 继续阅读 »
2015-01-14 码农明明桑
前言 前面我们有说过android反编译的工具,如何进行反编译。反编译后可以得到jar或者得到smali文件。Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali。我们反编译得到的代码,jar的话可能很多地方无法正确的解释出来,如果我们反编译的是smali则可以正确的理解程序的意思。因此,我们有必要熟悉smali语法。 类型的表示 java里面包含两种类型,原始类型和引用类型(包括对象),同时映射到smali也是有这两大类型。 more 原始类型 V void (只能用于返回值类型) Z boolean B by 继续阅读 »
2011-08-01 Jamling
简介 在linuxt系统下使用OpenCV2.3 + NDK R6编译 OpenCV人脸检测应用 more 准备 Android NDK ( r5或更高版本) 下载地址:http://developer.android.com/sdk/ndk/index.html OpenCV Android包 http://sourceforge.net/projects/opencvlibrary/files/opencv-android/2.3/ cmake(可选,替代NDK) 参考:http://www.cmake.org/ 继续阅读 »
2014-05-20 码农明明桑
新项目中,使用了Google I/O 2013发布的新工具,使用Gradle构建android项目,并且在新版的Intellig IDEA以及google的Android Studio对其支持。本文就介绍一下怎么使用gradle构建android项目,进行多个版本编译。 Gradle是什么? Gradle是以Groovy为基础,面向java应用,基于DSL语法的自动化构建工具。是google引入,替换ant和maven的新工具,其依赖兼容maven和ivy。 使用gradle的目的: 更容易重用资源和代码; 可以更容易创建不同的版本的程序,多个类型的apk包; 更容易配置,扩展; 更好的IDE 继续阅读 »
2016-08-08 码农明明桑
小红书Android客户端第一个版本于2014年8月8日发布,转眼到了2016年8月8日,小红书Android版本发版两周年。趁机回顾一下小红书的Android版本,两年中我们踩过很多坑,收获很多经验,分享出来与大家共勉。 小红书从最初1.0到现在目前4.7版本,历经两年,安装包从原先的5M发展到现在的17M,产品模块也从原先的只有社区模块发展到了具有社区和电商两个大模块。App包含社区、电商、支付、推送、直播、统计等各种功能和模块,那么开始吧。 more 功能演进 两年的时间,30多个版本的迭代,许多功能都有了翻天覆地的变化。我们的新人欢迎页也是从最初的比较炫的效果发展到目前比较稳定的简洁版本。当初钟大侠花了无数个日日夜夜 继续阅读 »
2015-01-01 Jamling
编译Android源代码 本文介绍的是如何在linux环境下获取、编译源代码,并在编译之后运行。使用的操作系统为Ubuntu11.04 more 获取源代码 Android源代码仓库是分布式的,叫做git,所以在获取代码之前先安装git。git与常用的svn,cvs不一样,但不必担心,android为了简化操作,使用python脚本语言写了一个简化程序叫做curl。只需要按以下步骤一步一步操作就行了。 继续阅读 »