- 博客(159)
- 资源 (4)
- 收藏
- 关注
转载 Android服务之PackageManagerService启动源码分析
了解了Android系统的启动过程的读者应该知道,Android的所有Java服务都是通过SystemServer进程启动的,并且驻留在SystemServer进程中。SystemServer进程在启动时,通过创建一个ServerThread线程来启动所有服务,本文主要介绍Android服务中PackageManagerService服务启动过程。首先介绍一些PackageManagerServi
2013-11-15 11:33:26 825
转载 android framework 分析(二)
启动 Zygote-Xzygote /system/bin --zygote--start-system-serverAndroidRuntime->AppRuntimeint main(int argc,const char* constargv[]){ AppRuntimeruntime;生成AndroidRuntime实例 ...
2013-11-15 10:37:22 1615
转载 Android Framework 分析 (一)
1.目录树/framework/base/api /framework/base/awt/framework/base/build/framework/base/camera关 于camera的HAL接口库。最终生成native共享库libcamera.so ,编译时根据是否定义USE_CAMERA_STUB来决定系统是否有Camera硬件支持。若没有实际的Ca
2013-11-15 10:33:26 2030
原创 HBuildX运行到微小程序问题
18:03:04.853 [微信小程序开发者工具] For more details see: https://developers.weixin.qq.com/miniprogram/en/dev/devtools/cli.html。18:03:04.856 [微信小程序开发者工具] 详细信息: https://developers.weixin.qq.com/miniprogram/dev/devtools/cli.html。18:03:04.849 [微信小程序开发者工具]
2023-07-08 18:12:14 1606
原创 vue的故事开端
创建vue create projectname(npm init vue@latest创建的有点问题)安装node、npm、vue、vscode。运行yarn serve。
2023-06-17 17:38:52 165 1
原创 Android Activity中使用Fragment
至于,Activity和Fragment的生命周期再次不描述了,google、百度一大把
2016-10-15 09:40:32 1863
原创 Androi与html中的JavaScript之间方法相互调用
对于这个问题,很多人都知道怎么一回事。Android调用Html中JS的方法,JS如何调用Android中的方法?先来说说,WebView、WebViewClient、WebChromeClient。一、简介1、WebView 一说到WebView可能,很多人会说,其有很多的弊端,再次不说。至于,它是干什么的控件(略)。2、WebViewClientWebVie
2016-09-13 16:14:27 767
原创 关于老项目增加功能的问题
由于上周项目中没安排什么事情,而另外一个项目中有个项目,一个非常老的项目E3S,需要增加新的功能,人力不够,所以被安排过来搞几天。对于,一个对那个老项目什么业务逻辑不懂的人来说,是一件很痛苦的事情。整整花了两天的时间去看代码。为什么说这个项目很老?第一,时间很久了,13年底;第二,代码完全没有被整理过,一个字乱;第三,没有使用现在的最新的技术,开发工具。知道代码的我,从SVN将代码导入到Ecl
2016-09-13 14:54:05 1738
原创 Android Studio插件开发利器Exynap
Exynap在Android周报中看到的,第一眼看不知是啥。看着看着,感觉不觉明历!简直就是Android Studio的一大帮凶,让Android Studio更加方便、简洁、命令化的编程。快捷键(Ctrl + Shift + D)——先安装插件Exynap。
2016-09-13 12:39:53 3094 1
原创 关于数据格式化代码整理
import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;/** * Created by R.W on 2016/3/1. */public class SD extends FD { double f = 111231.5585; publi
2016-03-01 15:59:49 698
原创 SlidingUpPanel的使用
下载地址:https://github.com/umano/AndroidSlidingUpPanel最近项目中使用过这种控件,调用的方法expandPanel(float offset);该方法主要设置打开的程度。以此,在背景处并不能响应点击事件,从而使得这个控件收拢,看了看这个View的事件处理方法中,从而获知,其中有一个方法:private boolean isDragVie
2014-06-28 18:37:16 2499 1
转载 Android布局中的include、merge 、ViewStub
在布局优化中,Androi的官方提到了这三种布局include、merge 、ViewStub。
2014-05-21 15:47:04 708
转载 Android网络通信的方式
如今,手机应用渗透到各行各业,数量难以计数,其中大多数应用都会使用到网络,与服务器的交互势不可挡,那么android当中访问网络有哪些方式呢?现在总结了六种方式:(1)针对TCP/IP的Socket、ServerSocket(2)针对UDP的DatagramSocket、DatagramPackage。这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随
2014-04-03 17:41:33 916
转载 Android抽象布局——include、merge 、ViewStub
在布局优化中,Androi的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。1、布局重用标签能够重用布局文件,简单的使用如下:[html] view plaincopyprint?LinearLayout xmlns:android="h
2014-02-12 12:28:32 739
转载 Java中的关键字volidate大集合
我们知道,在 Java 中设置变量值的操作,除了 long 和 double 类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。这在 JVM 1.2 之前, Java 的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着 JVM 的成熟和优化,现在在多线程环境下volatile 关键字的使用变得非常重要。在当前的 Java 内存模型下,线程可以把变量保
2013-12-26 12:59:54 5098
原创 有关在Eclipse上安装插件WindowBuilder以及如何使用
其实在Eclipse上安装插件很简单,主要有两种方式:第一种就是在线安装插件;第二种就是,采取离线方式,也就是先将插件压缩包下载下来。推荐使用第二种,因为到时候你可以自己随时删除这个插件。首先,此时此刻Eclipse是可以工作的状态,也即是打开了Eclipse。Google一下关于Java GUI插件,会发现比较多的插件,但是在这里推荐使用WindowBuilder插件,我记得,曾经Windo
2013-12-21 16:02:52 73552 4
原创 AIDL文件中使用实现接口Parcelable的类
在官方文档中说明了,在AIDL文件中可以使用:AIDL使用简单的语法来声明接口,描述其方法以及方法的参数和返回值。这些参数和返回值可以是任何类型,甚至是其他AIDL生成的接口。 其中对于Java编程语言的基本数据类型 (int, long, char, boolean等),String和CharSequence,集合接口类型List和Map,不需要import 语句。
2013-12-19 20:48:57 3826
转载 Ubuntu下的apt以及dpkg命令
Ubuntu默认不能直接用root帐户登录,必须从第一个创建的用户(既安装时创建的那个用户)通过su或sudo来获得root权限。在 Ubuntu中对系统进行操作很多时候都要使用这个命令,由此可见对于新来说很有必要来认识这个命令。这或许不太方便,但这样增加了安全性,避免用户由于 误操作而损坏系统。sudo格式:sudo [其它命令]sudo既为Super user
2013-12-16 09:55:02 1276
转载 查看Linux内核版本
方法一: 命令: uname -a作用: 查看系统内核版本号及系统名称方法二:命令: cat /proc/version作用: 查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称补充说明: /proc文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以文件系统的
2013-12-16 09:51:20 971
转载 Service Manager分析
Android系统Binder机制的总管是Service Manager,所有的Server(System Server)都需要向他注册,应用程序需要向其查询相应的服务。可见其作用是多么的重要,那么我们这里就要重点介绍一下这个。这里以java层加入ServiceManager及getService为数据流分析一下。复习一下典型的Binder模式,有利于后面的理解:1、客户端通过
2013-12-06 15:33:52 1051
转载 ServiceManager和IBinder的扮演角色
l ServiceManager的角色:它也是一項Core Service ServiceManager本身也是一個Native Service,而且是天字第一號的核心服務(Core Service)。在系統啟動時(即執行init.rc時),就會立即啟動它,並登記(Register)成為Binder Driver裡的第一號Native Service。如下圖所示:
2013-12-06 15:32:54 1118
转载 Binder in Java
Android在Native层实现了进程间的Binder通信,但是上层应用程序的开发及Framework的实现都是Java,用Java层再实现一次肯定是不合理的,Java可以通过JNI调用Native Code,所以通过JNI复用Binder在Native层的实现就是一个顺理成章的事情。注册Service 在Init进程的init2阶段,系统启动了ServerThread,在Se
2013-12-06 15:31:39 751
原创 在组件中获取服务对象的大致步骤
我们可以在Activity、Service中获取到服务的管理对象,从而可以让服务工作,完成客户端的请求。在aidl文件编译生成的java文件中,有关服务管理对象(XXManager)、服务接口(IXXManager)、根(IXXManager.Stub)、服务(XXManagerService)、服务代理(IXXManager.Stub.Proxy)之间的大致类关系如图:具体可以看下a
2013-12-03 11:18:27 1834
原创 解析Activity中的onCreate方法
我们在写一个自己的Activity的时候需要注意:1、都必须extends Activity(或者其子类);2、必须在方法onCreate中存在一条这样的语句:super.onCreate(也就是调用Activity的onCreate方法),对于super.onCreate方法放的位置要求不是很高,只要被调用了就可以了,super.onCreate主要是加载一些组件。如下面:imp
2013-12-02 10:16:21 12926 3
转载 UML Tools for Ubuntu
Unified Modelling Language (UML) is a modelling languages. It is typically used in the design phase of object oriented software development process, to express the thought in graphical representation,
2013-11-28 10:31:45 6499
转载 Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2文件
这么多年来,数据压缩对我们来说是非常有用的。无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件,我们都可以让下载更容易或者有效 的节约磁盘空间。某些压缩格式有时允许我们以60%的比率(甚至更高)压缩文件。下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目 录。我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法。这几个是在Linux里面常用的压
2013-11-26 18:42:45 903
转载 Android源码学习—系统启动过程
Android的启动过程可以分为两个阶段,第一阶段是Linux的启动,第二阶段才是Android的启动,下面我们分别来了解一下具体的过程。首先是Linux启动,这一部分我想就可以略过了,无非是Linux的Bootloader,Kernel,Driver之类的,在这里唯一要提到的就是ServiceManager,即服务管理器,这个是做为一个进程在Android加载之前就被启动了,我们可以从ini
2013-11-25 10:36:28 823
转载 Android系统启动过程
Android系统启动过程首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用。启动的过程如下图所示:(图片来自网上,后面有地址) 下面将从Android4.0源码中,和网络达人对此的总结中,对此过程加以学习了解
2013-11-25 10:03:46 753
转载 Android系统启动流程 -- android
Android的启动过程是从进程init开始的,所以它是后续所有进程的祖先进程。一、init进程源码位于system/core/init目录。主要做了以下事情:1. 重新设置子进程终止时信号SIGCHLD的处理函数。act.sa_handler = sigchld_handler; //调用了wait函数等待子进程退出。act.sa_flags =
2013-11-25 09:59:55 1356
转载 Android开机启动流程初探
l Init进程Android系统在启动时首先会启动Linux系统,引导加载Linux Kernel并启动init进程。Init进程是一个由内核启动的用户级进程,是Android系统的第一个进程。该进程的相关代码在platform\system\core\init\init.c。在main函数中,有如下代码:open_devnull_stdio();log_init();
2013-11-25 09:57:57 742
转载 Android消息队列模型——Thread,Handler,Looper,Massage Queue
Android系统的消息队列和消息循环都是针对具体线程的,一个线程可以存在(当然也可以不存在)一个消息队列(Message Queue)和一个消息循环(Looper)。Android中除了UI线程(主线程),创建的工作线程默认是没有消息循环和消息队列的。如果想让该线程具有消息队列和消息循环,并具有消息处理机制,就需要在线程中首先调用Looper.prepare()来创建消息队列,然后调用Loope
2013-11-23 10:02:50 1186
转载 深入理解Android消息处理系统——Looper、Handler、Thread
熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。Android通过Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环
2013-11-23 10:01:50 756
转载 在64Ubuntu如何安装ia32支持32-bit---Ubuntu apt-get install ia32 for 32-bit on 64-bit
To install 32-bit libraries on a 64-bit linux systemInstall: $ apt-get install ia32-libsTo install 32-bit libraries for developmentInstall: $ apt-get install lib32gcc1 libc6-i386 lib3
2013-11-20 11:36:56 3310
转载 UNIX / Linux: Set your PATH Variable Using set or export Command
How do I add a new path to $PATH variable under Linux and UNIX like operating system? What is my path, and how do I set or modify it using csh/tcsh or bash/ksh/sh shell?The PATH is an environment
2013-11-18 16:42:32 1414
转载 UML建模之时序图(Sequence Diagram)
一、时序图简介(Brief introduction) 时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。
2013-11-18 10:17:46 1271
转载 UML建模之类图(Class Diagram,UML图)
一、简介类是对象的集合,展示了对象的结构以及与系统的交互行为。类主要有属性(Attribute)和方法(Method)构成,属性代表对象的状态,如果属性被保存到数据库,此称之为“持久化”;方法代表对象的操作行为,类具有继承关系,可以继承于父类,也可以与其他的Class进行交互。 类图展示了系统的逻辑结构,类和接口的关系。二、类的构成类主要有属性和方法构成。比如商品属性有
2013-11-18 10:14:09 1608
转载 Android中APK的安装过程
Android应用安装有如下四种方式:1.系统应用安装――开机时完成,没有安装界面2.网络下载应用安装――通过market应用完成,没有安装界面3.ADB工具安装――没有安装界面。4.第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由 packageinstaller.apk应用处理安装及卸载过程的界面。应用安装的流程及路径
2013-11-16 23:08:24 1515
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人