- 博客(23)
- 资源 (19)
- 收藏
- 关注
转载 【动态加载】Android动态加载进阶:代理Activity模式
技术背景简单模式中,使用ClassLoader加载外部的Dex或Apk文件,可以加载一些本地APP不存在的类,从而执行一些新的代码逻辑。但是使用这种方法却不能直接启动插件里的Activity。启动没有注册的Activity的两个主要问题Activity等组件是需要在Manifest中注册后才能以标准Intent的方式启动的(如果有兴趣强烈推荐你了解下Activity生命周期
2015-12-14 14:58:06 597
转载 【动态加载】Android动态加载:简单加载模式
初步了解Android动态加载Java程序中,JVM虚拟机是通过类加载器ClassLoader加载.jar文件里面的类的。Android也类似,不过Android用的是Dalvik/ART虚拟机,不是JVM,也不能直接加载.jar文件,而是加载dex文件。先要通过Android SDK提供的DX工具把.jar文件优化成.dex文件,然后Android的虚拟机才能加载。注意,有的An
2015-12-14 14:28:20 739
原创 【Intent】对隐式Intent的运行时检查保护:如相机调用失败
类似打开相机,发送图片等隐式Intent,是并不一定能够在所有的Android设备上都正常运行。例如打开相机的隐式Intent,如果系统相机应用被关闭或者不存在相机应用,又或者是相机应用的某些权限被关闭等等情况都可能导致这个隐式的Intent无法正常工作。一旦发生隐式Intent找不到合适的调用组件的情况,系统就会抛出ActivityNotFoundException的异常,如果我们的应用没有对这
2015-10-08 12:44:25 1147
原创 【QrCode】Zxing竖屏,并解决变形问题
Step 1: Add following lines to rotate data before buildLuminanceSource(..) in decode(byte[] data, int width, int height)DecodeHandler.java:byte[] rotatedData = new byte[data.length];for (int y = 0; y
2015-07-20 16:34:33 1893
原创 【Service】Android中保持Service存活的方法
关于如何让Service keep alive,我在上篇博客给出的解决方案是:方案一,让服务器端发一个推送,检查Service是否还存活;方案二,将Service独立出来,运行在另一个进程中。这两个方案有些地方需要说明和改进,然后还会有其他方案补充进来。方案一:利用推送来确保Service存活。方案一的做法有点“偷懒”。因为相当于把这个难题转移给推送服务提供者来处理,或者说
2015-06-25 09:17:10 2920 1
原创 【原理】Apk的安装过程
Apk的安装过程分两步:一、apk文件复制到程序目录下(/data/app/)二、为应用创建数据目录(/data/data/package name/) 提取dex文件到指定目录(/data/dalvik-cache/) 修改系统包管理信息
2015-05-27 14:00:16 769
原创 【博客】Android博客
常用工具网站 1. Android代码查找 https://www.codota.com/ 2. 开源项目解析 http://www.codekk.com/open-source-project-analysis CSDN 1.任玉刚 http://blog.csdn.net/singwhatiwanna 2.老罗 http://bl
2015-05-19 14:05:19 519
转载 【JNI】开发流程6步骤
JNI开发流程主要分为以下6步:1、编写声明了native方法的Java类2、将Java源代码编译成class字节码文件3、用javah -jni命令生成.h头文件(javah是jdk自带的一个命令,-jni参数表示将class中用native声明的函数生成jni规则的函数)4、用本地代码实现.h头文件中的函数5、将本地代码编译成动态库(windows:*.dll,linux/
2015-05-14 11:02:44 454
原创 【github】project is already on GitHub解决办法
今天把github中的一个repository 删除后,想重新将project分享到github,但是Android Studio Project 依旧提示“ project is already on GitHub ”,即“该项目在github已经存在”。解决办法:关闭Android Studio,进入电脑中你要分享的那个项目的目录,假设我这里的项目目录是 xxx\project
2015-05-07 10:31:04 4022
原创 【消息通信】Android消息驱动机制
消息驱动机制 Android扩展了线程的退出机制,在启动线程时,可以首先在线程内部创建一个消息队列,然后让线程进入一个无限循环中,在这个无限循环中,线程会不断检查消息队列中是否有消息。如果需要线程执行某个任务,便向线程的消息队列中发送对应任务的消息,线程在无限循环中检查到消息队列中有消息到来,便会获取该消息,进而执行该消息对应的处理流程。如果线程的消息队列中没有消息,线程便进入等待状态,等待
2015-02-08 15:33:06 940
原创 【IPC】Linux进程间通信(Inter Process Communication)通信方式
通信方式SocketSignal(信号)Pipe(管道)Message Queue(消息队列)Semaphore(信号量)Shared Memory(共享内存)
2015-01-27 09:37:02 506
原创 【Netty】netty学习笔记一
netty主要是一个异步的nio server/client framework 它采用了event driven模式 netty主要针对异步(asynchronous)请求的处理 netty不仅实现异步, 也有同步实现, 不过是内部也是采用的future机制1.channel channel可以理解为传输请求的另外一种抽象,
2015-01-21 17:23:48 804
原创 【启动】Android正常模式启动流程
Android正常模式启动流程系统加电,执行bootloader。bootloader负责初始化软件运行所需的最小硬件环境,最后加载内核到内存中。内核加载进内存后,将首先进入内核引导阶段,在引导阶段最后,调用start_kernel进入内核启动阶段。start_kernel最终启动用户控件的init程序。init程序负责解析init.rc配置文件,开启系统守护进程。两个最重要的守护进程
2015-01-16 16:40:49 444
原创 【JNI】JNI编程模型结构
JNI编程模型的结构,可以概括为三个步骤:Java层声明Native方法。JNI层实现Java层声明的Native方法,在JNI层可以调用底层库或者回调Java层的方法。这部分将被编译为动态库(SO文件)供系统加载。加载JNI层代码编译后生成的共享库。
2015-01-14 16:15:26 537
转载 【View】Android View绘制机制
View绘制机制1. View树的绘图流程整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘(draw),这里就不做延展了,我们只介绍在自定义View中
2015-01-12 17:26:59 693
转载 【Service】Service理解
关于Service 1、 Service不是分离开的进程,除非其他特殊情况,它不会运行在自己的进程,而是作为启动运行它的进程的一部分。 2、 Service不是线程,这意味着它将在主线程里劳作。 启动service有两种方法: 1、 Context.startSer
2014-08-04 10:09:07 659
原创 【设计模式】建造者模式与工厂方法模式区别
建造者模式: 1.是关注的行为的不同 2.基于抽象类工厂方法模式1.关注的属性的不同2.基于接口和抽象类的
2014-01-10 10:05:55 5246
原创 【设计模式】适配器模式
适配器模式不适合在系统设计阶段采用,没有一个系统分析师会在做详设的时候考虑使用适配器模式,这个模式使用的主要场景是扩展应用中,就像我们上面的那个例子一样,系统扩展了,不符合原有设计的时候才考虑通过适配器模式减少代码修改带来的风险。
2014-01-09 13:36:40 543
转载 【Svn】ubuntu 安装svn
ubuntu 安装svn环境:ubuntu10.04LTS1、在终端中直接输入 sudo apt-get install subversion,选择安装即可2、查看版本命令 svnserve --version(更多命令直接键入svnserve --help可查看到)3、查看svnserver是否已启动: netstat -ntlp,可看到svn对应的端口3690
2013-08-05 09:17:07 544
原创 【面向对象】多态的一些理解
<br />多态性是指在一个给定的类继承层次结构中,同名的运动规律可在不同的类中具有不同的表现形式。<br /> <br />在JAVA中有两种多态是指:运行时多态和编译时多态。<br /><br /><br /><br />关于类的多态性简介如下: <br /><br />多态(polymorphism)意为一个名字可具有多种语义.在程序设计语言中,多态性是指”一种定义,多种实现”.例如,运算符+有多种含义,究竟执行哪种运算取决于参加运算的操作数类型: <br /><br />1+2 //加法运算符 <b
2010-06-25 21:42:00 579
原创 【UML】关于UML的一些思考
使用UML构造系统的结构,就是根据应用需求建立系统静态模型的过程,UML结构包括了基本构造块、公共机制和支配这些构造块放在一起的规则, 其中,基本构造块主要有1、事物2、关系和3、图;公共机制主要有1、详细说明2、修饰3、通用划分和4、扩展机制UML用于描述事物语义的规则有1、为事物关系和图命名; 2、给
2010-04-20 12:55:00 442
原创 【UML】UML概述
UML是一个标准的图形表示法,它不是面向对象的分析和设计,也不是一种方法,它仅仅是一组符号而已。 UML的内容 首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征
2010-04-19 19:04:00 411
python3.6.4 64位 win
2018-01-02
Navicat Premium_11.2.7中文绿色版32and64
2017-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人