Android 应用篇
文章平均质量分 79
一口仨馍
拥抱改变,勇往直前。
展开
-
Android事件传递机制
看了N篇事件传递机制的文章博客,用到的时候有些地方依然记不太清,不如自己动手。为了简单明了。没写那么多事。既当做自己的总结也当做笔记。go!此Demo首先自定义了两个继承LinearLayout的ViewGroup,MyViewGroupA和MyViewGroupB.。一个继承View的MyView。MyViewGroupA 包裹MyViewGroupB 包裹MyView。详细可见代码。Dem原创 2015-12-23 19:38:11 · 2059 阅读 · 0 评论 -
Java 并发基础学习
本文已授权微信公众号《鸿洋》原创首发,转载请务必注明出处。三个基础概念原子性。一个操作或者一系列骚操作,要么全部执行要么全部不执行。数据库中的“事物”就是个典型的院子操作。可见性。当一个线程修改了共享属性的值,其它线程能立刻看到共享属性值的更改。举个例子:由于JMM(Java Memory Model)分为主存和工作内存,共享属性的修改过程为从主存中读取并复制到工作内存中,...原创 2018-01-09 14:28:19 · 1119 阅读 · 7 评论 -
Android QA专用,Python实现不一样的多渠道打包工具
相对于美团打包方案,我为什么要写这个工具?除了Gradle的多渠道打包,目前最流行的应该是美团(美团Android自动化之旅—生成渠道包、美团Android自动化之旅—适配渠道包、Walle)使用Python直接添加渠道文件的打包方式了,速度真是杠杠的!但是,这里有一个问题:需要一个已签名无渠道号的APK,那么问题来了,这个APK哪里来的?懂行的朋友该说了,Gradle随便打个Release包不完事原创 2017-01-17 10:50:09 · 1795 阅读 · 2 评论 -
Android package属性、package name和Application ID三者的联系及区别
名词解释package属性:在AndroidManifest.xml文件中。package name:应用程序的包名。Application ID:模块defaultConfig块下的applicationId属性。设置Application ID每个Android应用程序都有唯一一个类似Java包名的Application ID,比如com.example.myapp。在Android设备翻译 2016-12-27 15:51:43 · 39119 阅读 · 6 评论 -
Android JNI之Java和C互相调用
概述JNI是什么JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。NDK是什么NDK是Native Development Kit的缩写。是SDK(software development kit)软件开发工具包的一部原创 2016-11-15 14:56:22 · 4466 阅读 · 1 评论 -
Android 代码混淆实战
本文已授权微信公众号《鸿洋》原创首发,转载请务必注明出处。什么是代码混淆?Java 是一种跨平台的、解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中。由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名、方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成 Java 源代码。我们可以使用 Java 混淆器对 Java 字节码进行混淆。原创 2016-04-25 17:40:04 · 3877 阅读 · 0 评论 -
Android 内存泄露简介、典型情景及检测解决
本文已授权微信公众号《非著名程序员》原创首发,转载请务必注明出处。什么是内存泄露?Android虚拟机的垃圾回收采用的是根搜索算法。GC会从根节点(GC Roots)开始对heap进行遍历。到最后,部分没有直接或者间接引用到GC Roots的就是需要回收的垃圾,会被GC回收掉。内存泄漏指的是进程中某些对象(垃圾对象)已经没有使用价值了,但是它们却可以直接或间接地引用到gc roots导致无法被GC回收。原创 2016-04-27 15:36:35 · 7780 阅读 · 2 评论 -
Android APP必备高级功能,消息推送之MQTT
本文已授权微信公众号《鸿洋》原创首发,转载请务必注明出处。1. Android端实现消息推送的几种方式轮询:客户端定时向服务器请求数据。伪推送。缺点:费电,费流量。拦截短信消息。服务器需要向客户端发通知时,发送一条短信,客户端收到特定短信之后,先获取信息,然后拦截短信。伪推送。缺点:贵而且短信可能被安全软件拦截。持久连接(Push)方式:客户端和服务器之间建立长久连接。真正的推送。原创 2016-10-10 09:15:24 · 55446 阅读 · 62 评论 -
Android AIDL进程间通信(IPC)
IPC是Inter-Process Communication的缩写,意思是进程间通信(如果不清楚什么是进程,请左转问度娘后在回转来看)。Android中IPC的方式有很多种,今天先说其中的一种,即AIDL(Android Interface Definition Language)方式。创建多进程的方式有两种,一,给四大组件指定android:process属性,二,通过JNI在na原创 2015-11-08 19:31:55 · 2899 阅读 · 0 评论 -
Android破解锁屏密码(已root)
Android破解锁屏密码(已root)常在江湖飘,哪有不挨刀。有时候我们会忘了手机的图形密码,花钱请人去修吗?身为一个有情怀Android开发者,say no!那么怎么才能破解图形密码呢?我们在设置图形密码的时候系统会自动帮我们生成一个gesture.key文件,其中存储的就是手势密码。那么删除此文件后会怎么样呢?just do it!一、打开adb.exe 1.点击右下角“win原创 2016-02-23 10:06:18 · 6114 阅读 · 1 评论 -
Android activity四种启动模式完全解析
Android使用“任务栈”(也称“back stack”)存放启动的各个activity。一般情况下,一个应用只有一个任务栈。特殊情况允许一个应用使用多个任务栈。典型的FILO(First In Last Out)数据结构。点击“back”键,自上至下依次出栈结束activity。activity的四种启动模式分别如下:standardsingleTopsingleTasksingleIn原创 2016-03-08 10:20:56 · 2798 阅读 · 2 评论 -
Android UncaughtExceptionHandler进行全局异常捕获
在实际开发过程中,我们的APP由于各种原因,难免会有Crash现象(应用程序XXX已经停止)。这样给用户一种很不友好的感觉,那么我们如何去处理这种情况呢?答案就在实现UncaughtchExceptionHanlder,复写uncaughtException()方法。当crash发生的时候,系统会调用UncaughtchExceptionHanlder#uncaughtException()。原创 2016-01-31 20:45:23 · 2960 阅读 · 3 评论 -
Android 四种线程池
为什么要使用线程池当同时并发多个网络线程时,引入线程池技术会极大地提高APP的性能。显著减少了创建线程的数目。防止内存过度消耗。控制活动线程的数量,防止并发线程过多。 使用条件:假设在一台APP完成一项任务的时间为T T1 创建线程的时间T2 在线程中执行任务的时间,包括线程间同步所需时间T3 线程销毁的时间 显然T = T1+T2+T3。注意这是一个极度简化的假设。可以看出原创 2016-03-16 16:51:38 · 13752 阅读 · 1 评论 -
Activity#onUserLeaveHint()和Activity#onUserInteraction()
/** * Called as part of the activity lifecycle when an activity is about to go into the background as the result of user choice. * For example, when the user presses the Home key, {@link #on原创 2016-02-17 11:20:40 · 6558 阅读 · 0 评论