魅力程序猿

  • 首页
  • Java
  • Android
  • APP
    • 扑克计分器
    • Video Wallpaper
  • 联系我
  • 关于我
  • 资助
Android
Android

Android的热更新方案之Sophix非侵入式热修复方案

1. 简述 热修复技术可谓是百花齐放,微信的Tinker、QQ空间的Nuwa、饿了么的Amigo、美团的Robust等等,各个热修复方案争相发布,都声称自己可以做到全方位全功能的热修复。不过他们各自有自身的局限性,或者不够稳定,或者补丁过大,或者效率低下,或者使用起来过于繁琐,大部分技术上看起来似乎可行,但实际体验并不好。 终于在2017年6月11日,手淘技术团队联合阿里云正式发布了新一代Android移动热修复方案——Sophix。Sophix的核心设计理念,就是非侵入性。Sophix这个名字,是来源于Sophi…

2018年7月10日 0条评论 7141点热度 0人点赞 daozi 阅读全文
Android

Android中的线程和线程池

前言 线程在Android中是一个很重要的概念,从用途上来说,线程分为主线程和子线程,主线程主要处理和界面相关的事情,而子线程则往往用于执行耗时操作。由于Android的特性,如果在主线程中执行耗时操作那么就会导致程序无法及时地响应,因此耗时操作必须放在子线程中去执行。 在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,即线程不可能无限制的产生,并且线程的创建和销毁都会有相应的开销。档系统中存在大量的线程时,系统会通过时间片轮转的方式调度每个线程,因此线程不可能做到绝对的并行,除非线程数量…

2018年7月5日 0条评论 6821点热度 0人点赞 daozi 阅读全文
Android

搞定Java并发-synchronized原理

前言 线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行,这种方式有个高尚的名称叫互斥锁,即能达到互斥访问目的的锁,也就是说当一个共享数据被当前正在访问的线程加上互斥锁后,在同一个时刻,其他线程只能处于等待的状态,直到当前线程处理完毕释放该锁。在 Ja…

2018年7月2日 0条评论 4778点热度 0人点赞 daozi 阅读全文
Android

Android中CrashHandler的实现

前言 相信大家在调试android应用程序包的时候经常会遇到“应用程序没有响应”这种情况,也就是当我们的应用程序出现crash情况,这种提示方式会给用户带来很不好的体验。而且,通常crash导致的退出,因为没有走正常的退出流程,会导致数据没保存、线程没有杀死、缓存没有清空等问题。这个时候就需要一个全局CrashHandler。 这个时候做过项目同学就知道有优秀的第三方SDK,譬如国内有:Umeng统计,腾讯的Bugly,国外有:fabric的Crashlytics  等吧,都不一一细说了,使用起来都很方便,接入也很…

2018年6月29日 0条评论 5233点热度 0人点赞 daozi 阅读全文
Android

Android NDK开发-JNI基础篇

1. NDK NDK是Google开发的一套开发和编译工具集,可以生成动态链接库,主要用于Android的JNI开发。NDK 可以自动地将 so 和 Java 应用一起打包,极大地减轻了开发人员的打包工作。 NDK 提供了一份稳定、功能有限的 API 头文件声明,Google 明确声明该 API 是稳定的,在后续所有版本中都稳定支持当前发布的 API。从该版本的 NDK 中看出,这些 API 支持的功能非常有限,包含有:C 标准库(libc)、标准数学库(libm)、压缩库(libz)、Log 库(liblog)。…

2018年6月27日 0条评论 4933点热度 0人点赞 daozi 阅读全文
Android

用apksigner进行批量签名的脚本

前言 对APK进行签名,正常情况下使用Gradle进行签名或者第三方开源签名工具或插件进行签名及ADB命名,这样需要给测试或运维人员进行讲解,解释半天他们会问你有批量工具吗?那作为程序员得你,只能说有。那我给大家一个用python写的基于apksigner进行批量签名的脚本,双击就OK了。 1. V1&V2签名 在给大家放出大招之前,先卖个萌,来一起了解一下Android的签名。在Android 7.0以下版本,一直使用的是Oracle提供的V1 scheme (JAR signing)签名方案。自从9行代…

2018年6月12日 0条评论 7690点热度 0人点赞 daozi 阅读全文
Android

理解Android的Window和WindowManager

简述 在Android系统中,PopupWindow、Dialog、Activity、Toast等都有窗口的概念,但又各有不同,Android将窗口大致分为三类:应用窗口、子窗口、系统窗口。其中,Activity与Dialog属于应用窗口、PopupWindow属于子窗口,必须依附到其他非子窗口才能存在,而Toast属于系统窗口,Dialog可能比较特殊,从表现上来说偏向于子窗口,必须依附Activity才能存在,但是从性质上来说,仍然是应用窗口,有自己的WindowToken。所有的视图都是通过Window来呈现…

2018年6月9日 0条评论 6673点热度 0人点赞 daozi 阅读全文
Android

Android的ClassLoader

1. 前言 ClassLoader翻译过来就是类加载器。 阅读过JVM和Android的Dalvik与ART我们知道,Dalvik虚拟机如同其他Java虚拟机一样,在运行程序时首先需要将对应的类加载到内存中。而在Java标准的虚拟机中,类加载可以从class文件中读取,也可以是其他形式的二进制流。因此,我们常常利用这一点,在程序运行时手动加载Class,从而达到代码动态加载执行的目的。 只不过Android平台上虚拟机运行的是Dex字节码,一种对class文件优化的产物,传统Class文件是一个Java源码文件会生…

2018年6月3日 0条评论 5150点热度 0人点赞 daozi 阅读全文
Android

JVM和Android的Dalvik与ART

1. JVM(Java虚拟机) JVM是Java编程语言的核心。当我们运行一个程序时,JVM负责将字节码转换为特定机器代码。JVM也是平台特定的,并提供核心的Java方法,例如内存管理、垃圾回收和安全机制等。JVM 是可定制化的,我们可以通过Java 选项(java options)定制它,比如配置JVM 内存的上下界。JVM之所以被称为虚拟的是因为它提供了一个不依赖于底层操作系统和机器硬件的接口。这种独立于硬件和操作系统的特性正是Java程序可以一次编写多处执行的原因。 JVM的结构体系 2. Dalvik 1)…

2018年5月28日 0条评论 6793点热度 0人点赞 daozi 阅读全文
Android

Android的ContentProvider

 一、概述  ContentProvider(数据提供者)是应用程序之间共享数据的一种接口机制,是一种更为高级的数据共享方法。 ContentProvider可以指定需要共享的数据,而其他应用程序则可以在不知道数据来源、路径的情况下,对共享数据进行增删改查等操作。 在Android系统中,许多Android系统内置的数据也是通过ContentProvider提供给用户使用,例如通讯录、音视频文件和图像文件等  二、使用关系  三、类关系 CPP与CPN是一对Binder通信的C/S两端; ACR(Applicati…

2018年5月25日 0条评论 8014点热度 0人点赞 daozi 阅读全文
Android

Error:Resource shrinker cannot be used for libraries.

Error:Resource cannot be used for libraries. 意思是“library中不要使用移除无用的资源文件字段” 原因是library中使用了混淆,并移除了无用的资源文件,所以解决办法就是把该library中的shrinkResources字段移除就可以了。 大家可以试试,如果有其他解释及方案,请告知。    

2018年5月20日 0条评论 10986点热度 0人点赞 daozi 阅读全文
Android

Android的消息处理机制(Looper,Handler,MessageQueue,Message)

1.Android消息处理机制概述 Android消息处理机制实际上就是Handler的运行机制,他能够很轻松的在线程间传递数据。由于Android开发规范的限制,我们不能在主线程执行耗时操作(如网络,IO操作等),不能在子线程更新UI,所以Handler大部分用来在耗时操作与更新UI之间切换。除了Handler之外,我们还需要一个消息队列MessageQueue,用于存放Handler发送过来的Message。然后,Android中的Looper类提供了两个方法:prepare()、loop(),前者用来创建Me…

2018年5月19日 0条评论 28006点热度 0人点赞 daozi 阅读全文
Android

Android Studio:Field can be converted to a local variable

1. 解析 Field can be converted to a local varible 的完整说明是: This inspection searches for redundant class fields that can be replaced with local variables. If all local usages of a field are preceded by assignments to that field, the field can be removed and its us…

2018年5月9日 0条评论 8859点热度 0人点赞 daozi 阅读全文
Android

Android的Messenger

一. Messenger是什么 Messenger是一种轻量级的IPC方案并对AIDL 进行了封装,它实现起来比较容易。 下面Messenger的工作原理图,以便于更好的理解Messenger:   Messenger内部消息处理使用Handler实现的,所以它是以串行的方式处理客服端发送过来的消息的,如果有大量的消息发送给服务器端,服务器端只能一个一个处理,如果并发量大的话用Messenger就不合适了,而且Messenger的主要作用就是为了传递消息,很多时候我们需要跨进程调用服务器端的方法,这种需求Messe…

2018年5月8日 0条评论 5080点热度 0人点赞 daozi 阅读全文
Android

Android的Binder机制

 一.  Binder是什么 1. 直观来说,Binder是Android中的一个类,它继承了IBinder接口 2. 从IPC角度来说,Binder是Android中的一种跨进程通信方式,Binder还可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder,该通信方式在linux中没有 3. 从Android Framework角度来说,Binder是ServiceManager连接各种Manager(ActivityManager、WindowManager,etc)和相应ManagerServic…

2018年5月7日 0条评论 5812点热度 0人点赞 daozi 阅读全文
12345…9
搜索
联系方式

QQ群:179730949
QQ群:114559024
欢迎您加入Android大家庭
本人QQ:136049925

赐我一丝安慰
给我一点鼓励

最新 热点 随机
最新 热点 随机
GreatSQL 8.4.4-5 GA(2026-06-30) OpenCode × DeepSeek 配置方案继续迭代:从能用到好用 绩隐金日报 · 第55期 你的 AI Agent 会在服务器上"修仙"——OpenClaw.NET 长持久会话技术解读 一篇搞定:用 curl 测试私有部署模型联通性 零基础认识大语言模型(LLM)工作原理(4.Attention:模型是怎么看懂上下文的?)
Skill用得好,下班走得早:一文讲透Skill的结构与设计零基础认识大语言模型(LLM)工作原理(2.Token 到底是什么?)当 AI 不再只是"说话":OpenClaw.NET 率先原生支持 MCP AppsToken IO 架构的设计游戏:大模型产品形态四年演进的本质零基础认识大语言模型(LLM)工作原理(3.大模型绕不开的架构--Transformer到底是怎么工作的?)ORACLE默默地搞了个免费的智能体工厂
OpenClaw.NET 上线 MetaSkills :软件工程第一性原理的工业级实践 How to resolve “You need to have Ruby and Sass installed and in your PATH for this task to work” Warning? Android面试题12–对Context的理解、它的作用域、注意什么 Android Normal and Dangerous Permissions Android Context作用域 AScript定制left/right join查询语法
最近评论
宝宝 发布于 8 年前(02月27日) 哈哈哈哈
GPU Mining 发布于 9 年前(02月19日) I am just starting to learn about all of this. Tha...
Timothynix 发布于 9 年前(02月08日) Your place is valueble for me. Thanks!… http:...
xing1982 发布于 9 年前(02月04日) 不错不错!内容感觉好极了!
additional info 发布于 9 年前(01月28日) I just want to mention I am just new to weblog and...

COPYRIGHT © 2023 魅力程序猿. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备15000477号