Android
lilie008
这个作者很懒,什么都没留下…
展开
-
MVP + Dagger2 + Kotlin 随笔
这些工具的使用入门门槛还是挺高的,属于架构设计层次。所以边学习边记录一些学习过程的知识。其中涉及大量转载知识点。MVP+Dagger2 + + KotlinMVPDagger2引入插件和依赖Dagger2注解的一些规约Dagger2结构简单描述插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出原创 2020-07-20 19:40:59 · 241 阅读 · 0 评论 -
Android 自定义View
自定义View的步骤:1、自定义View的属性,布局中使用自定义的View2、在View的构造方法中获得我们自定义的属性3、重写onMesure 4、重写onDraw一、在values建立一个属性的xml文件attr.xml > format的类型:string,color转载 2015-06-29 11:16:17 · 474 阅读 · 0 评论 -
自定义控件开发流程
1、写一个类继承View或你想扩展功能的控件(比如TextView)。 public class CustomView extends View { };2、在/res/value下创建一个attr.xml文件。没有这个文件自定义控件照样能显示出来,但只能使用所继承的父类中包含的属性,有了这个文件可以增加自定义的命名空间,来设置自定义的属性(其中format可转载 2015-04-30 17:15:39 · 363 阅读 · 0 评论 -
用Gradle 构建你的android程序
前言android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目的用户指南全部看完, 让不会用gradle 的人也用gradle构建android项目,让打包(注意,打包和构建是两码事)多版本android不再痛苦。最后,题外话:珍惜生命,远离ant....转载 2015-03-12 18:03:04 · 341 阅读 · 0 评论 -
gradle工具
在 Eclipse 下利用 gradle 构建系统在 eclipse 下利用 gradle 构建系统基本开发环境操作系统:本教程使用的为 Windows Vista Enterprise, 如果您的系统是 Linux 的,请选择下载对应版本的其他工具,包括开发工具、Java EE 服务器、Apache Ant、SoapUI。开发工具:Eclipse IDE转载 2015-03-12 17:57:13 · 580 阅读 · 0 评论 -
serialVersionUID JAVA的序列化机制
serialVersionUID适用于JAVA的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastEx转载 2015-01-19 11:37:18 · 482 阅读 · 0 评论 -
view、SurfaceView和GLSurfaceView
Android游戏当中主要的除了控制类外就是显示类View。SurfaceView是从View基类中派生出来的显示类。android游戏开发中常用的三种视图是:view、SurfaceView和GLSurfaceView。 View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢。 SurfaceView:基于view视图进转载 2014-12-16 10:47:54 · 589 阅读 · 0 评论 -
android 机型适配问题
从UI设计师的角度理解:px(像素)是我们UI设计师在PS里使用的(不解释),同时也是手机屏幕上所显示的(也不解释)dp是开发写layout的时候使用的尺寸单位,sp是开发写layout时关于字体的字号单位,且dp与sp总为1:1关系。Android支持四种不同的dpi模式:ldpi mdpi hdpi xhdpi一般地,手机分辨率与所运行的dpi模式是匹配的,例如hvga转载 2014-11-03 10:18:32 · 422 阅读 · 0 评论 -
Android 启动过程init分析
1、Init转载 2014-10-09 14:20:26 · 449 阅读 · 0 评论 -
圆形切图
本来想在网上找个圆角的例子看一看,不尽人意啊,基本都是官方的Demo的那张原理图,稍后会贴出。于是自己自定义了个View,实现图片的圆角以及圆形效果。效果图:第一个是原图,第二个是圆形效果,第三第四设置了不同的圆角大小。准备改变一个博客的风格,首先给大家讲一下原理,让大家明白了,然后再贴代码,不然可以直接看那么长的代码也比较痛苦,核心代码其实就那么几行:核心代码转载 2014-08-28 10:03:47 · 1626 阅读 · 0 评论 -
Android内存回收策略优先级
Android系统会对进程的重要性进行评估,并将重要性以“oom_adj”这个数值表示出来,赋予各个进程。系统会根据“oom_adj”来判断需要优先结束哪些进程,一般来说,“oom_adj”的值越大,该进程被系统选中终止的可能就越高,前台程序的“oom_adj”值为0,这意味着它不会被系统终止。Android将进程分为6个等级,foreground(前台进程)、visible(可见进程)、seco转载 2014-08-20 15:24:00 · 958 阅读 · 0 评论 -
反编译与调试APK
0×01前言这年头,apk全都是加密啊,加壳啊,反调试啊,小伙伴们表示已经不能愉快的玩耍了。静态分析越来越不靠谱了,apktool、ApkIDE、jd GUI、dex2jar等已经无法满足大家的需求了。那么问题就来了,小伙伴们真正需要的是什么?好的,大家一起呐喊出你内心的欲望吧,我们的目标是——“debug apk step by step”。0×02那些不靠谱的工具转载 2015-06-30 16:26:17 · 7717 阅读 · 0 评论 -
Android Studio 中的NDK开发
1、在Android Studio 中创建一个项目,项目配置中新建一个类(Activity或者任意一个类)。在新建的类中定义本地的方法:public native String getStringFromNative(); 2、生成.class文件build -> Make Project 编译生成.class文件。.class文件的路径:项目目录\build\app\bu转载 2015-07-06 17:32:49 · 308 阅读 · 0 评论 -
Android Studio 生成.so文件及 Android.mk文件解析
在NDK开发中生成.SO文件在app路径的build.gradle 的defaultconfig中添加ndk{ moduleName "MyJni" //设置库(so)文件名称 ldLibs "log", "z", "m" //添加系统库 abiFilters "armeabi", "armeabi-v7a", "x86" //生成3中类的.so文件}转载 2015-07-06 18:39:45 · 5328 阅读 · 0 评论 -
Weex跨平台前端实现原理
以前用的多的技术定义webview,通过webview和native进行交互,实现跨平台。后续出现phonegap/cordova等。但其效果依旧有所欠缺。所以近期出现大量使用RN和Weex方案为了解决跨平台浏览器不流畅的问题。像web实现,是基于浏览器进行渲染。流畅度不高。换个思路,把前端映射成native组件,就流畅多了。来看一下Weex如何实现。 ...转载 2018-08-16 20:05:09 · 1824 阅读 · 0 评论 -
Android热修复原理(二)
阿里系底层热修复方案特点:修复时,立即生效。但同时带来各种rom兼容问题,也不能做新增field的修复。如Sophix Andfix阿里系的修复方案:底层替换所操作的指针,实际上是ArtMethod,在类被加载,类中的每个方法都会有对应的ArtMethod,它记录了方法包括所属类和内存地址信息,Andfix正是通过篡改ArtMethod,将补丁方法ArtMethod的成员值逐一赋给旧方法,...转载 2018-08-14 16:52:55 · 364 阅读 · 0 评论 -
Android热修复原理(一)
一、热修复主要用来干啥?应用场景:当出现BUG需要修复时,在APP解决完问题后,需要更新时重新打包成各渠道进行发布。为了使用一种不需要进行重复操作打包发布,插件化及热修复应运而生。插件化和热修复不是同一个概念,虽然站在技术实现的角度来说,他们都是从系统加载器的角度出发,无论是采用hook方式,亦或是代理方式或者是其他底层实现,都是通过“欺骗”Android 系统的方式来让宿主正常的加载和运...转载 2018-07-09 17:03:31 · 203 阅读 · 0 评论 -
Android源代码结构及Linux编译Android源码
Android源代码结构Android代码的工程分为3个部分核心工程(Core Project):建立Android 系统的基础,在根目录的各个文件夹中扩展工程(External Project):使用其他开源项目扩展的功能,在external 文件夹中。包(Package):提供Android 的应用程序和服务,在package 文件夹中。Android 的核心工程 Android 的核心转载 2015-09-08 12:04:28 · 578 阅读 · 0 评论 -
Eclipse 的git相关配置
Eclipse 配置git上传项目至github转载 2015-09-01 11:48:07 · 2823 阅读 · 0 评论 -
android中Invalidate和postInvalidate的区别
android中Invalidate和postInvalidate的区别Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android U转载 2014-07-03 15:01:14 · 366 阅读 · 0 评论 -
Android 有关View的绘制问题
View绘制转载 2015-07-15 17:31:19 · 410 阅读 · 0 评论 -
Android Studio使用笔记(随时添加)
AndroidStudio使用笔记1、导入.jar文件方式一:新建工程-> 左上角Projectl栏目->APP目录->libs目录->新建一个子目录->复制/移动.jar文件至此目录即可方式二: 新建工程-> 左上角Projectl栏目->APP目录-> build.gradle->在dependence下添加.jar文件路径即可 2、 自动compile 设置Setti原创 2015-07-06 18:20:32 · 474 阅读 · 0 评论 -
Android 屏幕适配相关解决方案
什么是屏幕尺寸、屏幕分辨率、屏幕像素密度? 什么是dp、dip、dpi、sp、px?他们之间的关系是什么? 什么是mdpi、hdpi、xdpi、xxdpi?如何计算和区分?在下面的内容中我们将介绍这些概念。屏幕尺寸屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等转载 2015-07-08 17:47:11 · 1117 阅读 · 0 评论 -
JNI开发
第一部分,介绍和指南(Part One: Introduction and Tutorial)第一章介绍"JNI"是"Java"平台的一个强大的功能。使用"JNI"的应用程序能能混合用例如"C"和"C++"语言编写的本地代码(nativecode),和用Java编程语言编写的代码。"JNI"允许编程人员,在不丢弃在传统编码上的投入,来利用Java平台功能。因为"JNI"是"Java"平转载 2015-07-07 15:08:17 · 1091 阅读 · 0 评论 -
Android中的进程通信之Broadcast
广播是一种被动跨进程通讯的方式。当某个程序向系统发送广播时,其他的应用程序只能被动地接收广播数据。这就象电台进行广播一样,听众只能被动地收听,而不能主动与电台进行沟通。在应用程序中发送广播比较简单。只需要调用sendBroadcast方法即可。该方法需要一个Intent对象。通过Intent对象可以发送需要广播的数据。 先建一个android工程:sendbroadcast。在转载 2014-08-18 20:42:16 · 451 阅读 · 0 评论 -
Android中的进程通信之Content Provider
Android应用程序可以使用文件或SqlLite数据库来存储数据。Content Provider提供了一种在多个应用程序之间数据共享的方式(跨进程共享数据)。应用程序可以利用Content Provider完成下面的工作1. 查询数据2. 修改数据3. 添加数据4. 删除数据 虽然Content Provider也可以在同一个应用程序中被访问,但这么做转载 2014-08-18 20:42:14 · 582 阅读 · 0 评论 -
Android进程通信之AIDL
1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口icp:interprocess communication :内部进程通信转载 2014-08-18 20:02:19 · 326 阅读 · 0 评论 -
View绘制流程相关分析
前言: 本文是我读《Android内核剖析》第13章----View工作原理总结而成的,在此膜拜下作者 。同时真挚地向渴望了解 Android 框架层的网友,推荐这本书,希望你们能够在Android开发里学到更多的知识 。 整个View树的绘图流程是在ViewRoot.java类的performTraversa转载 2014-07-03 16:01:09 · 361 阅读 · 0 评论 -
ContentProvider
(一) 前言ContentProvider是android组件之一,可以提供数据的跨应用程序访问,提供数据的跨进程无缝隙访问,所以是非常重要的东东。使用方法一般是复制内容到剪贴板代码:getContentResolver().query(Uri uri, String[] projection, String selection, String[] selectionArg转载 2014-06-11 12:14:22 · 480 阅读 · 0 评论 -
Activity的生命周期
横竖屏切换时候Activity的生命周期转载 2014-06-10 10:39:47 · 340 阅读 · 0 评论 -
Intent和PendingIntent的区别
ntent英文意思是意图,pending表示即将发生或来临的事情。 PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。 Intent 是及时启动,intent 随所在的activity 消失而消失。 PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadca转载 2014-06-03 14:41:08 · 460 阅读 · 0 评论 -
Android app更新模块
转自:前不久接到个任务,在我们的app里面添加更新模块,在之前的版本中,我们的更新都是直接通过浏览器下载apk包来安装更新的,我想各位很大一部分应用的更新方法都是这样,因为它简单、方便,但是他也有许多不好的地方,比如需要用户跳转到浏览器页面、下载不可控、网络不好的情况的下失败无法续传,退出浏览器就无法接着下了等。。 于是我们这个更新模块的需求就来了1.下载后台进行,退出转载 2014-05-30 18:05:59 · 833 阅读 · 0 评论 -
Android Service与Activity之间通信的几种方式
转自:在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,Intent中我们可以传递数据给Service,而当我们Service执行某些操作之后想要更新UI线程,我们应该怎么做呢?接下来我就介转载 2014-05-30 12:20:11 · 510 阅读 · 0 评论 -
android service
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态。不过,虽然Se转载 2014-05-30 10:41:22 · 504 阅读 · 0 评论 -
开源SlidingMenu笔记(二)
滑动菜单栏和滑动的效果都是在此类中实现。[java] view plaincopypackage com.example.myslidingmenudemo08; import android.graphics.Canvas; import android.os.Bundle; import android.view.M转载 2014-05-20 18:11:10 · 419 阅读 · 0 评论 -
Android设置应用程序默认语言
@Overridepublic void onCreate() { super.onCreate(); String languageToLoad = "zh"; Locale locale = new Locale(languageToLoad); Locale.setDefault(locale); Configuration config = ge转载 2014-05-20 18:05:17 · 509 阅读 · 0 评论 -
Android在Http连接中设置超时和代理
Http连接的超时机制能够防止连接线程的无限期等待,一般可分为connect timeout和socket timeout,在Android中可以使用HttpClient和HttpURLConnection建立Http连接,因此存在两种设置超时的方式,首先Socket等待建立连接的超时时间和Socket输入流等待数据到达的超时时间设置如下:private static final in转载 2014-07-04 10:05:00 · 646 阅读 · 0 评论 -
Android四大基本组件及其生命周期
Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。一:了解四大基本组件Activity :应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Int转载 2014-07-28 11:03:03 · 409 阅读 · 0 评论 -
Android适配
众所周知,Android机型尺寸各种各样,于是屏幕适配就成了Android开发中很重要的一环。Android屏幕适配可能一些开发者都会遇到这样的问题,今天就来分享下屏幕适配,你会发现其实Android屏幕适配也可以很简单。基本概念Android屏幕适配必须要理解的一些概念,这部分可能比较枯燥,但是俗话说的好“工欲善其事,必先利器”,翻译过来就是“有什么样的枪,决定你打什么样的鸟”,转载 2014-07-28 11:22:17 · 340 阅读 · 0 评论 -
Android中跨进程通信之Activity
在Android应用开发中,会用到跨进程通信的方式,什么是跨进程通信,例如,在第三方应用中调用拨号、短信、邮件等,在这个过程中发生数据的传递,当前应用(一个进程)调用另一个应用(第二个进程),这就是Android中的跨进程通信。在Android中,一共有四种跨进程通信的方式,分别是通过Activity、BroadcastReceiver、ContentProvider和AIDL(Android转载 2014-08-18 19:41:54 · 576 阅读 · 0 评论