bcoder

Android开机动画修改记录

 分类:Android, Java 阅读 (2,162)  Android开机动画修改记录已关闭评论
5月 272018
 
一、概述

需要修改bootanimation.zip

这个文件一般位于下面几个位置:

#define USER_BOOTANIMATION_FILE “/data/local/bootanimation.zip”
#define SYSTEM_BOOTANIMATION_FILE “/system/media/bootanimation.zip”
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE “/system/media/bootanimation-encrypted.zip”

二、压缩包目录结构

|-part0
|-part1
|-desc.txt

1、关于part0和part1目录,安卓开机动画分成两个阶段(目录名字应该是可以随便命名的,在desc.txt里指定目录的名字就可以):

part0里的为第一阶段,按设定的帧率播放动画

part1为第二阶段,如果动画播放完还没启动完成,就循环播放这一段动画

2、关于desc.txt

文件内容如下:

506 505 15
p 1 0 part0 #000000 10 10
p 0 0 part1
s 1 /system/media/poweron.ogg

第一行506为动画图片的宽度,505为动画图片的高度,15为每秒播放的图片数

第二行:第二个参数为循环次数(0应该为无限循环?),第三个参数为暂时时间(不清楚具体运行原理)?,第四参数为图片目录,第五个参数为背景色,第六七参数为显示时钟的坐标,其中五六七参数可以不写

三、注意事项

1、将制作好的素材压缩时,要设置压缩率为0,即不压缩,只是打个zip包。即在winrar中压缩方式选择“存储”,在ubuntu使用zip命令的时候,加上-0选项

 Posted by on 2018-05-27
5月 252018
 

  Settings Provider是指通过如下方式设置的系统变量数据库

  Settings共有三种分类,分别如下:

  • global:所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限;
  • system:包含各种各样的用户偏好系统设置;
  • secure:安全性的用户偏好系统设置,第三方APP有读没有写的权限。
查看某一个设置项的值:

  当我们调试时,需要查看设置里面的值,通过调试程序会比较慢,其实我们通过adb就可以查看,命令行如下:

  其中的get system可以根据设置的具体情况改成get global或者get secure

  如果返回null说明没有这个选项

设置某个项的值:

  当然我们也可以设置相关选项的值,通过put命令,示例如下:

打印某个域的所有值:

 

vlc可用模块列表

 分类:Others, Others 阅读 (5,418)  No Responses »
5月 242018
 

使用如下命令可以获取一份vlc模块列表

下面是我本地生成的:

 

 Posted by on 2018-05-24
5月 242018
 

使用protocol buffers提供的工具protoc进行编译,将proto文件生成相关的java和c++文件,命令行大致如下:

~/下载/protoc-3.2.0-linux-x86_64/bin/protoc –plugin=protoc-gen-grpc-java=/media/win150g/document/grpc/grpc-java/compiler/build/exe/java_plugin/protoc-gen-grpc-java –grpc-java_out=lite:/media/win150g/document/grpc/GrpcTestApp/app/src/main/java –plugin=protoc-gen-grpc-cpp=/media/win150g/document/grpc/grpc-cpp/grpc/bins/opt/grpc_cpp_plugin –grpc-cpp_out=./ –cpp_out=./  –java_out=/media/win150g/document/grpc/GrpcTestApp/app/src/main/java test.proto

各参数说明:

相关链接:

各种开发工具的plugin附件

grpc_ruby_plugin grpc_python_plugin grpc_php_plugin grpc_objective_c_plugin grpc_csharp_plugin  protoc-gen-grpc-java grpc_cpp_plugin

 Posted by on 2018-05-24
5月 212018
 

出现这种问题一般是没有找到libxxx.so的库,需要配置系统环境变量LIBRARY_PATH或者LD_LIBRARY_PATH

几种配置系统环境变量的方法:

1. 在命令行中使用export,如

此方法在新建命令行窗口或者切换到其他窗口后,系统环境变量就无效了

2. 在~/.bashrc或者/etc/profile中修改

vi ~/.bashrc #打开编辑bashrc文件

source ~/.bashrc #使bashrc的文件修改立即生效

此方法修改的会永乐有效

 Posted by on 2018-05-21
5月 152018
 

1. gRPC – 远程RPC框架

适用平台:c++、Java、Python、Php、Js等多平台

2. Netty -基于Java NIO client-server的网络应用框架

适用平台:Java

3. thrift – 用于可扩展的跨语言服务开发,简单来说就是RPC远程调用,它是一个完整的 RPC 框架体系。 

适用平台:Actionscript 3.0、c_glib、C++、CSharp、D、Dart、Delphi、Go、Graphviz、Haxe Framework、Haskell、Java、Javascript、Node.js、OCaml、Perl、PHP、Python、Ruby

4. SOME/IP(vsomeip) – 用于车载的远程通讯框架,特点:服务发现\带宽预留,符合autosar(汽车开放系统架构)标准.SOME/IP是指协议栈,vsomeip是用c++的实现

适用平台:C/C++

 Posted by on 2018-05-15
4月 252018
 

sockaddr和sockaddr_in两者本质上是一样的,同样的结构,同样的大小,只是sockaddr用于bind, connect时传入参数,而sockaddr_in用于设置端口信息等.所在在使用的时候两者可以互相转化.

 Posted by on 2018-04-25
4月 092018
 

疑问一:如果创建Handler没有为Handler指定Looper,那么Handler用的是哪个Looper?

答:如果没有指定Looper的话,程序会通过Looper.myLooper();来获取当前线程中保存的Looper对象.

扩展:如果一个线程中没有Looper实例,则在创建Handler时即会触发异常

疑问二:如果在程序中建立了多个Handler,都使用同一个Looper(如使用主线程的Looper),那么消息会在每个Handler中都被处理吗?

答:不会,可以看下Handler代码中,enqueueMessage函数里面,将msg.target设置为了Handler本身.而在Looper的loop函数中,是通过msg.target.dispatchMessage(msg);将消息分发出去的,所以不会造成Handler接收消息的错乱.

疑问三:一个线程能不能有多个Looper?

答:不能,Looper的构造函数是私有的,Looper只能通过它的静态方法prepare()函数来创建,这个函数会检查当前线程中是否已有Looper实例,如果已有会报异常,如果没有则创建一个新的.

疑问四:Handler内存泄漏的原理?

Handler内存泄漏是因为,如果创建非静态的内部Handler类,会隐式的持有外部类的实例,所以当Activity销毁时,Handler有未执行的消息时,就会造成内在的泄漏.

并不是有静态内部Handler类就会引起内存泄漏,假如在Activity销毁后,Handler没有继续要执行的工作,也不会造成内存泄漏。

 Posted by on 2018-04-09
4月 092018
 

  场景介绍:因为板卡调试别的东西,所以数据线接口不能用,也就是不能通过adb进行连接调试,但是有串口连接.

  正常情况下进行网络调试的方法是,usb线连接设备后执行下面的命令:

  adb tcpip 5555

  adb connect 192.168.1.123

  改回usb调试使用命令:

  adb usb

  在没有usb线的情况下,你得有条件进入android的shell命令行(串口线连接或者安卓设备上安装了命令行工具),然后在命令行工具执行以下命令,如果一次不行多执行几遍:

  然后在电脑上执行命令:

  adb connect 192.168.1.123

 Posted by on 2018-04-09