
系统服务
文章平均质量分 73
Fifi_0617
这个作者很懒,什么都没留下…
展开
-
ubuntu server 开机进入grub界面解决办法
1、在grub 命令行中输入 : ls (hd0,gpt1)/grub2、set root=(hd0,gpt1)3、set prefix=(hd0,gpt1)/grub4、insmod normal5、normal重启后选择第一个菜单,正常启动即可。原创 2021-05-05 11:15:54 · 3611 阅读 · 1 评论 -
ubuntu 搭建gerrit服务器
https://www.cnblogs.com/eastnapoleon/p/6497802.html原创 2020-09-27 00:44:05 · 1787 阅读 · 0 评论 -
利用sed命令在匹配某特定字符串的行尾添加字符串
把txt文件中包含test行的行尾添加 ‘000’sed -i '/test/ s/$/000/'转载 2019-07-21 21:57:58 · 2092 阅读 · 2 评论 -
android.database.sqlite.SQLiteException: Failed to change locale for db '/storage/sdcard0/xx/xxx.db'
诡异的Exception,首先一次是发现在 4.0.3 和 4.0.4 的版本中。按许多网上的解决方案://使用 SQLiteDatabase.CREATE_IF_NECESSARY | SQLiteDatabase.NO_LOCALIZED_COLLATORS 的方式 去open DataBaseprivate SQLiteDatabase openOrCreateDa...原创 2019-07-01 17:12:42 · 1984 阅读 · 0 评论 -
从linux进程机制到TopwiseProp的分析
在linux中,如果需要创建一个新的进程,会调用fork()孙数。 我们先来看一段代码:#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){ pid_t p1; pid_t p2; p1=fork();//----(1) p2=fork();//----(2) printf("p1 id原创 2017-04-22 14:31:13 · 363 阅读 · 0 评论 -
Android深入浅出之Binder机制
Binder于底层实现,是用的共享内存。实现了一个叫binder驱动的东西,这个binder驱动维护了一映射机制,其实就是一个hash表,用来将各个binder与相对应的进程和相关的线程信息维护起来。 简单的来说,就是通过一个handle找到对应的binder,从而建立对应的进程间的联系。handle在这里就是类似ip的一个东西,用来找到通讯的对象的。 其实从上层的角度来看,我们不需要去转载 2017-05-03 17:15:23 · 491 阅读 · 0 评论 -
Android AIDL的使用与理解
AIDL(Android Interface Definition Language),它是Android接口定义语言。它是一种辅助性语言。使用它来达到自动生成接口的目的。它实际上还是使用binder来达到进程间通讯的一个辅助工具。 我们在使用binder时,实际上需要达到两个目的。一个是通讯逻辑的实现,即要找到谁。二是业务逻辑的实现,即要做什么。 通讯逻辑上,都是一样的,所以代原创 2017-05-03 17:02:02 · 468 阅读 · 0 评论 -
Android 强引用,弱引用,软引用,虚引用
原文地址:http://blog.youkuaiyun.com/mr_liabill/article/details/48344483基本概念1. 强引用以前我们使用的大部分引用实际上都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也转载 2017-03-17 14:34:01 · 305 阅读 · 0 评论 -
Android消息循环
为什么一个线程需要消息循环和消息处理: 如果这个线程需要处理的工作是不需要与其它线程交互的,简单的工作,那么你可以直接用thread,不需要引入消息循环与处理机制。 但是如果你的线程需要与其它的线程交互,特别是线程本身要处理的工作是分步的, 且各部分工作间是有一个相互状态依赖关系的时候,引入消息循环与处理机制就非常有必要。消息循环与处理机制的引入,让线程的控制和交互变得友好。构成消息机制的几个原创 2017-03-17 10:14:12 · 613 阅读 · 0 评论 -
Android ThreadLocal理解--续篇
还是ThreadLocal的一些遗留的疑问。 还是从Looper.java 的sThreadLocal变量说起。 static final ThreadLocal sThreadLocal = new ThreadLocal(); 在Looper.java中这个sThreadLocal使用的是一个静态的最终变量,那么在调用ThreadLocal.set函数时: public v原创 2017-03-25 16:19:27 · 338 阅读 · 0 评论 -
Android应用的启动流程
这里以在launcher中点击一个应用图标来启动一个新的android应用为例进行跟踪。 启动过程比较复杂,先不管实际的代码实现,仅从最简单流程来考虑就需要实现以下步骤: 1、找到当前的处于resume的activity先将它pause 2、创建一个新的activity 3、将新的activity置为resume 4、由于关系到原创 2017-03-15 11:22:04 · 465 阅读 · 0 评论 -
Android广播机制一
广播机制做为android进程间通信的一个重要机制被广泛的使用。我承认已经到了滥用的地步。正因为如此,各方案公司甚至google都已经对它做修改限制,来达到控制大家滥用的目的。(这说明这个机制本身的设计还是很成功的,说明它对于使用者来说,简单、方便,耦合度低的特点)。 那么android是设计broadcast的这套机制的。我们来看一下大致的流程。 android的广播机制分为注册和接收原创 2017-03-10 17:39:52 · 293 阅读 · 0 评论 -
Android ThreadLocal理解
Android ThreadLocal与Java ThreadLocal实现并不相同。在Android消息循环一文中http://blog.youkuaiyun.com/zyfzhangyafei/article/details/62882117,提到了ThreadLocal,这个叫做 线程局部变量 的东西。看一个实例:package test;import test.*;public class Test {原创 2017-03-22 20:05:54 · 1114 阅读 · 0 评论 -
Android广播机制二
接着分析广播的发送过程Activity中的sendBroadcast最后是调用了 ContextWrapper.sendBroadcast: public void sendBroadcast(Intent intent) { mBase.sendBroadcast(intent); }前面说过,这里的mBase是一个ContextI原创 2017-03-11 14:47:32 · 471 阅读 · 0 评论 -
Android Watchdog分析二
接下来看evaluateCheckerCompletionLocked函数: private int evaluateCheckerCompletionLocked() { int state = COMPLETED; for (int i=0; i< mHandlerCheckers.size(); i++) {原创 2017-02-27 15:56:34 · 448 阅读 · 0 评论 -
Android WatchDog分析
Android Watchdog是用于监控其它系统服务是否处于正常工作状态的一种机制。 一些重要的系统服务,如果处于死锁等异常状态时,系统已处于非正常的工作状态,这时重启系统来恢复android是非常必要的动作。一、Watchdog的启动。 Watchdog 是在SystemServer当中启动的: Slog.i(TAG, “Init Watchdog”);原创 2017-02-27 14:58:55 · 1195 阅读 · 0 评论 -
Android pm 命令详解
一、pm命令介绍与包名信息查询 1.pm命令介绍pm工具为包管理(package manager)的简称可以使用pm工具来执行应用的安装和查询应用的信息、系统权限、控制应用pm工具是Android开发与测试过程中必不可少的工具,shell命令格式如下:pm <command>2.包名信息查询shell模式下:pm list packages [options] [FILTER]打印所有的已经安装转载 2017-07-14 10:01:28 · 1427 阅读 · 0 评论 -
SeLinux权限问题分析(未完)
查看当前目录下的文件或目录的权限:ps -Zu:object_r:system_data_file:s0 system adb shell 之后执行setenforce 0可以暂时去除sepolicy权限 (不用重启机器,而且重启之后权限又恢复成原来的了)usage: setenforce [ Enforcing | Permissive | 1 | 0 ]setenforce 0 设原创 2017-07-29 18:03:32 · 680 阅读 · 0 评论 -
AMS之内存管理
原文地址:http://www.jianshu.com/p/72045d243b44 内存管理包括两个部分 1.当应用程序关闭后,后台对应的进程并没有真正退出,以便下次启动时能够快速启动 2.当系统内存不够用时,Ams会主动根据一定的规则退出优先级较低的进程1.关闭而不退出每个应用程序的主体都对应一个ActivityThread类,该类初始化之后,就进入Looper.loop()函数中无限循环转载 2017-08-30 21:09:16 · 1106 阅读 · 0 评论 -
ubuntu 手动整理内存
一、切换为管理员用户sudo su 二、执行sync 命令syncsyncsync可以将放在内存中暂时没有写入硬盘的数据写入到硬盘中,避免数据的丢失.三、执行echo 3 >/proc/sys/vm/drop_caches命令,指示内核对内存进行调整echo 3 >/proc/sys/vm/drop_cachesfree -m 查看内存使...原创 2019-05-03 13:01:04 · 830 阅读 · 0 评论 -
Ubuntu 16.04 Android 5.1编译环境搭建
https://blog.youkuaiyun.com/a906754899/article/details/71522173https://blog.youkuaiyun.com/gjy_it/article/details/79524561报错时:Export includes file: vendor/mediatek/proprietary/hardware/mtkcam/v3/device/A...原创 2019-03-31 21:03:41 · 804 阅读 · 0 评论 -
MTK OTA (一)
MTK FOTA原创 2017-11-14 17:02:31 · 2667 阅读 · 1 评论 -
Android开发优化之——使用软引用和弱引用
原文地址:http://blog.youkuaiyun.com/arui319/article/details/8489451Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。这里重点介绍一下软引用和弱引用。如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内转载 2017-03-17 14:36:03 · 417 阅读 · 0 评论