Android
ForeverSunshine
CSDN越来越难用了
展开
-
ListView的HeaderView
今天突然发现ListView的OnItemClickListener监听事件中的position返回是从1开始的,一直觉得很奇怪,在群里问了后,可能是headerView的问题,特意去查了一番,原来是如此:特此记过!(1)添加HeaderView之后尺寸布局被忽略。通常添加头部的方法是 ?123Layo转载 2015-07-27 20:43:51 · 804 阅读 · 0 评论 -
Android使用已有so库自己实现jni封装
为什么写这个最近项目需要在盒子上实现内容的加解密,方案是使用机顶盒内部主芯片加解密算法对存储在内容分区的资源进行加密,然后由机顶盒平台提供本地库的方式给应用使用。所以也就有了这个事情。一般情况下,完全可以由C层代码直接实现和封装JNI本地接口然后打成so文件,然后提供给应用开发者使用。 今天要说的情况基于这样的场景: 底层代码实现者已经将C代码编译成so库,然后直接提供给上层开发者使用,这样他们原创 2016-11-30 21:07:02 · 6713 阅读 · 1 评论 -
Android自定义竖直方向SeekBar
写在前面因为有这样的一个场景,需要实现竖直方向的多色进度条,然后在网上也找了下,没看到符合需要的,于是自定义了一个,效果如下: 具体实现本来想定义水平的,然后旋转一下,后来发现还不如直接定义竖直方向来的直接,就直接在竖直方向画了下。 首先讲一下思路,就是通过继承View,然后通过onDraw()方法进行绘制。具体绘制的时候,需要处理一些小细节。比如,我们需要画一个圆形的滑动块,那么我们的背景色带原创 2016-10-21 23:28:27 · 4611 阅读 · 4 评论 -
Android 5.1 vold模块ntfs扩展
准备需要下载ntfs-3g驱动包,并做相应修改,这个网上已经可以下载到修改好的包,本文最后也会附加。为什么要移植在Android原生代码中,只支持了FAT格式的挂载,并未支持NTFS格式的存储设备挂载。一般来说,在手机上并不需要实现这种功能,但是在机顶盒上,USB挂载却是必须的。那为了达到这种目的,一种比较便捷的解决办法就是移植现有的驱动以支持当前的系统,NTFS-3G在Android上无疑是一个可原创 2016-08-30 11:28:45 · 4161 阅读 · 2 评论 -
Android Java层DNS流程(图)
之前跟的Java层DNS流程:原创 2016-08-31 23:22:26 · 901 阅读 · 0 评论 -
Android 5 消息机制源码分析
消息模型基本要素: 消息队列、消息发送、消息读取、消息分发、消息循环线程。 操作系统原理中的生产者线程和消费者线程有着类似的过程: Android中的消息机制跟这个很类似,关键的几个名词如下:HandlerMessageMessage QueueLooper总览 这里是从网上找的一张图,在此感谢原作者。 从这张图上我们可以大致原创 2016-07-27 14:48:37 · 783 阅读 · 0 评论 -
Android系统时间同步机制
Android系统开机后,自动获取网络时间的流程跟踪,一张图表示:原创 2016-06-28 17:28:20 · 1904 阅读 · 0 评论 -
Android几种签名方法总结
在Android中,对应用签名,让其获取系统权限,有几种方式:方法一直接把应用源码放在源码/package/app/目录下进行编译,这种方式,需要拥有源码编译环境。 以系统Launcher为例,需要在Project目录下创建一个Android.mk文件,内容如下:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS原创 2016-04-23 14:58:54 · 2520 阅读 · 0 评论 -
在机顶盒上被移除adb后恢复的办法
最近使用公司总部的盒子做些适配,发现adb被移除了,虽然可以使用串口调试方式查看打印和操作,但是有些同事习惯使用Eclipse工具,直接使用adb操作,于是,我就帮忙解决了一下。恢复adb调试的方法如下: 1./system目录执行mount -o remount /system。 2.把adb和adbd通过cp命令拷贝到/system/bin目录下。 3.将adbd &加到某个开机启动的脚本原创 2016-04-26 10:58:22 · 9520 阅读 · 2 评论 -
Fragment在Android机顶盒上的应用
Fragment,很多人将其翻译为碎片,是一个依附于Activity而存在的控件。网上基本上大多是介绍Fragment的生命周期,或者从Google上翻译的文档。在机顶盒的环境下使用略有不同。首先,因为机顶盒的操作主要依赖于遥控器,而不是像手机那样可以触摸,所以,必然就要涉及到焦点的处理,而且非常频繁。Fragment的焦点处理主要是以下两种,对于有左侧导航,右侧为Fragment的应用来说,原创 2015-06-22 11:55:18 · 1067 阅读 · 0 评论 -
Wifi列表中文乱码
同事拿了块海思平台的板子过来,说是Wifi列表中文显示乱码,让我帮忙分析下原因。然后自己查看了下/data/misc/wifi目录: 查看了一下wpa_supplicant.conf文件,如下图, 在那个板子上发现这里的中文是正常显示的, 然后跟踪了一下Setting调用到Framework的WifiSsid.java中,发现在进行字符编码的时候,Hisi默认处理为GB2312,修改为UTF原创 2016-03-09 19:38:31 · 37751 阅读 · 2 评论 -
过滤Android系统设置中Wifi
过滤Android系统设置中Wifi因项目需要,对机顶盒做了不同配置的版本,低配版Wifi模组不支持5.8G的Wifi,所以需要把系统设置中的Wifi列表中的5.8G显示信息屏蔽掉。信号参数(WorldWide Available)2.4G信号: Frequency range:2.400G—-2.500GHz,即(2400MHz—–2500MHz), Bandwidth:100原创 2016-03-09 17:36:23 · 1727 阅读 · 0 评论 -
Wifi启动流程分析
因工作需要,对Android的Wifi模块做了些分析与跟踪。从Android的启动开始进入Android的入口是SystemServer,在这里面注册了许多的Service。这里主要看与Wifi相关的服务。 上述代码中,初始化了wifiService和ConnectivityService对象。并把这两个对象加到ServiceManager上,然后通过创建的对象wifi调用w原创 2016-03-12 16:50:46 · 2556 阅读 · 0 评论 -
Android ADB常用命令
1.查看已连接的设备使用此命令查看所有的连接设备,并列出它们的ID:adb devices如果存在多个设备连接,可以使用 adb -s DEVICE_ID 来指定特定的设备。2.安装应用使用 install 命令来安装apk,如果设备上已经安装了应用,可以使用可选参数 -r 重新进行安装并保留所有原创 2016-01-04 23:22:13 · 1170 阅读 · 0 评论 -
随手记
从Eclipse中导出项目到Android Studio中,选中build.gradle文件;注意Project和Module的区别,module中的src,main文件夹为源代码主文件夹Android Studio中对于应用的管理都是通过Module进行的,可通过在Project或者Module上右键菜单进入Module Setting。删除Module时先进入Module Sett原创 2015-10-08 21:59:15 · 902 阅读 · 0 评论 -
Ubuntu 16.04 编译Android 6.0系统源码
准备环境1.安装open-jdk7 【使用open-jdk8会报错】,原因是: 在build/core/main.mk中默认指定的是jdk1.7# Check for the correct version of java, should be 1.7 by# default, and 1.8 if EXPERIMENTAL_USE_JAVA8 is setifneq ($(EXPERIME原创 2016-11-21 09:42:14 · 4942 阅读 · 2 评论