- 博客(41)
- 收藏
- 关注
原创 C语言中数组默认值定义
C语言中,数组默认定义如下写法,运行结果为,从中可以看出默认是false。arr[0] = 1.arr[1] = 0.arr[2] = 0.arr[3] = 0.testint main(void) { bool tmp[4] = {true}; for(int i = 0; i < 4; i++){ printf("arr[%d] =...
2020-04-21 16:49:34
3322
原创 系统声音事件处理
备忘录:系统声音加减弹出对话框需要做其他处理,定位代码到:systemui/volume/Events.java writeEvent方法。 private static final String[] EVENT_TAGS = {58 "show_dialog",59 "dismiss_dialog",60 ...
2018-12-10 11:32:01
720
原创 Android TV 第一个APP
Android TV APP第一次开发遇到的坑,大神请绕道。首先创建时选择TV点击next,我个人选择的是第一个,Add No Activity,第二个会产生很多文件,包括Activity和Fragment。点击finish就可以创建,需要自己创建MainActivity和main layout。敲代码时可能不会有提示,此时只需要做如下操作就行:去掉AS的省电模式:
2017-08-21 18:39:59
968
原创 如何在service中显示Dialog
Activity中显示dialog:Dialog dialog = new Dialog(Service.this);dialog.setTitle("Network error!");dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);dialog.show();在service中按照上
2017-08-17 16:47:15
589
原创 am 命令给activity传值及activity 获取
am 传入值最简单直接的方式: am start -n packagename/.ActivityName -d "string"activity获取:getIntent().getDataString(); 如此简单,自己花了一个小时。。。
2017-01-09 17:49:30
1383
原创 android中解析text配置文件
Android中文件解析有xml解析,json解析等。这里要说的是解析txt配置文件,返回JavaBean对象。有一点是,配置文件每一行有一条数据,有些数据可能并不是我们所需要的,每组数据里面包含的元素不一定相同,而且取出来的数据也得符合要求。先看JavaBean:public class UpgradeInfo { public String productID; public
2016-12-30 15:25:02
477
原创 Android中使用WebView全屏播放视频时home键不起作用的问题解决
最近几天客户有个需求:无论在什么情况下,按home键都要回到app的首页,其他情况都已经实现,但在Webview中全屏播放视频时,按home键回到app首页。这个问题困扰我很长时间,因为home键是系统按键,app中压根拦截不到home键的事件,所以没法处理。客户需求又不得不做,因此查看Browser++源码发现,全屏播放时在onShowCustomView()方法中传进来一个View,记录此时的
2016-12-22 11:15:35
1156
原创 通过包名获取apk安装路径
在apk中获取自身安装路径:getPackageResourcePath();在apk中获取其他已知包名apk的安装路径:getPackageManager().getApplicationInfo(packageName, 0).sourceDir;主要查看PackageManager.java和ApplicationInfo.java这两个文件即可。
2016-11-10 17:19:58
8613
原创 Android系统预装第三方apk
对于android系统预装第三方apk,分两种情况:一、不包含so库的简单apk:完全可以预装到system/app目录下(也就是系统app),运行时不会有找不到so库的错误;二、包含so库的apk:如果按照普通的apk一样预装到system/app目录(因为不做任何处理,一般都会预装到这个目录),则会报错:java.lang.UnsatisfiedLinkError: Cou
2016-11-02 19:15:31
7425
原创 Android拓展js接口方法
Android拓展js接口方法:1、在webview中:webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new JsToJava(), "AVPlayer");//此处AVPlayer为js调用时使用的名称。2、JsToJava类中:@android.webk
2016-09-01 19:23:34
510
转载 Source Insight常用设置和快捷键大全(最全)
今天发现一篇非常棒的博客和大家分享,关于Source Insight的常用设置及快捷键大全,真的非常全!!原文地址:http://www.cnblogs.com/bluestorm/archive/2012/10/28/2743792.html1.括号配对高亮:“在前括号左侧,后括号左侧” 双击鼠标左键,可以选定匹配括号和其中内容( 2.让{ 和 } 不缩进:
2016-08-30 11:01:20
490
原创 Android开机动画制作
1.创建desc.txt文件;2.设置desc.txt的内容: 1920 1080 25 ---------------------1920x1080是需要显示到屏幕的像素宽高,25为每秒显示多少帧(也就是多少张); p 1 0 part0 ---------------------p标识还没搞太懂,1表示只显示一次,0表示两个图片显示的时间间隔为0,part0是
2016-08-10 17:38:30
456
转载 Android定制及替换launcher
替换Android桌面的相关问题:1、想将home screen换成自己写的activity,该如何实现?在 你要设置为home screen的那个activity的androidManifest.xml中的标签中加上这几句 话运行后,重启模拟器会弹出一个选择进入哪个界面的对话框2、怎样将系统默认的home screen删除?重新编译launcher源码,去掉配
2016-07-26 15:02:58
2475
转载 Activity生命周期详解
子曰:溫故而知新,可以為師矣。《論語》学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精髓。近来回顾了一下关于Activity的生命周期,参看了相关书籍和官方文档,也有了不小的收获,对于以前的认知有了很大程度上的改善,在这里和大家分享一下。熟悉javaEE的朋友们都了解serv
2016-06-28 18:47:24
370
原创 Android开发中关于“invalid symbol”的错误
Android开发中,有时会提示关于“ invalid symbol”这个的错误,比如:error: invalid symbol: 'switch',代码如下: android:id="@+id/switch" android:layout_width="wrap_content" android:layout_height="w
2016-06-13 14:47:43
3013
转载 CharSequence的getText()与String的getString()区别
曾经在学习中碰见两种获取常量的方式: CharSequence chrs = getText(R.string.demo); String str = getString(R.string.demo); 这两种方式有什么不同呢?一定要搞明白,开始实验: 实验一:strings
2016-06-03 09:41:48
723
转载 Android 开发中Parcel存储类型和数据容器
在android中使用Parcel(存储基本数据类型和引用数据类型的容器)通过IBinder来绑定,这种方法的作用是让数据在进程间传递数据,Parcel定位就是轻量级的高效的对象序列化和反序列化机制。在Framework中有parcel类,源码路径是:Frameworks/base/core/java/android/os/Parcel.java典型的源码片断如下:
2016-05-18 17:41:13
1502
原创 Android源码编译和APP编译步骤
对不同版本进行编译:1、source build/envsetup.sh;2、lunch (根据不同版本进行选择);3、查看mybuilds.sh(双系统需要查看mybuildd.sh),将不需要进行编译的版本注释或者删除,需要编译的版本放开或者添加;4、./mybuilds.sh(双版本则需要执行./mybuildd.sh)。对APP进行编译:前两步同上;
2016-05-17 09:28:54
4386
原创 Android API中被@hide注释的方法引用报错解决
将源码进行编译,编译结束后,将classes.jar文件作为user library添加到项目中。class.jar文件的位置:out\target\common\obj\JAVA_LIBRARIES\frameworks_intermediates;具体操作:1、将class.jar文件拷贝到本地;2、右击项目-->Build Path --> Add Libraries -->
2016-05-06 12:08:33
1216
转载 Android Handler、Message完全解析,带你从源码的角度彻底理解
我们都知道,AndroidUI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中获得刚才发送的Message对象,然后在这里进行UI操作就不会再出现崩溃了。这种处理方式被称为异步消
2016-05-04 19:05:35
413
转载 【Android 多媒体开发】 MediaPlayer 状态机 接口 方法 解析
一. MediaPlayer 状态机 介绍Android MediaPlayer 状态即图例 : 1. Idle (闲置) 状态 和 End (结束) 状态MediaPlayer 对象声明周期 : 从 Idle 到 End 状态就是 MediaPlayer 整个生命周期;-- 生命周
2016-04-25 12:12:39
817
转载 六款值得推荐的android(安卓)开源框架简介
1、volley项目地址 https://github.com/smanikandan14/Volley-demo(1) JSON,图像等的异步下载;(2) 网络请求的排序(scheduling)(3) 网络请求的优先级处理(4) 缓存(5) 多级别取消请求(6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)2、andro
2016-04-18 18:21:54
333
转载 Android中的Parcel
Parcel,翻译过来是“打包”的意思。打包干什么呢?是为了序列化。 如果要在进程之间传递一个整数,很简单,直接传就是行了;如果要传一个字符串,就稍微复杂了点:需先分配一块可以容纳字符串的内存,然后将字符串复制到内存中,再传递(新手可能问:为啥不直接把字符串的引用传过去呢?学过C/C++的地球人都知道:进程有自己的内存地址空间,一个进程中的1000地址可能在另一个进程中是100000,j
2016-04-13 18:19:55
343
转载 Android开发之Intent.Action
本文介绍Android中Intent的各种常见作用。 1 Intent.ACTION_MAINString: android.intent.action.MAIN标识Activity为一个程序的开始。比较常用。Input:nothingOutput:nothing activity android:name=".Main
2016-04-06 16:26:13
303
转载 Android KeyCode列表
KEYCODE列表电话键KEYCODE_CALL拨号键5KEYCODE_ENDCALL挂机键6KEYCODE_HOME按键Home3KEYCODE_MENU菜单键82KEYCODE_BACK返回键4
2016-03-28 10:10:47
434
转载 linux历史命令查找快捷方式
一、历史命令搜索操作快捷键: [Ctrl + r], [Ctrl + p], [Ctrl + n]在终端中按捉 [Ctrl] 键的同时 [r] 键,出现提示:(reverse-i-search), 此时你尝试一下输入你以前输入过的命令,当你每输入一个字符的时候,终端都会滚动显示你的历史命令。 当显示到你想找的合适的历史命令的时候,直接 [Enter],就执行了历史命令。另外, [Ctrl +
2016-03-24 17:18:31
4799
1
转载 grep命令详解
用‘grep’搜索文本文件如果您要在几个文本文件中查找一字符串,可以使用‘grep’命令。‘grep’在文本中搜索指定的字符串。
2016-03-24 17:15:17
399
转载 android编译系统的makefile文件Android.mk写法
android编译系统的makefile文件Android.mk写法如下(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。(2)Andro
2016-03-24 10:00:39
407
原创 Genymotion出现”Unable to load VirtualBox engine“的问题解决
Genymotion出现”Unable to load VirtualBox engine“的问题解决Genymotion出现下面问题(有可能是在安装完成打开时出现,也有可能实在启动模拟器的 时候出现)做如下操作即可正常运行: 右键–>VirtualBox–>属性–>兼容性–>(打钩)以兼容模式运行这个程序–>(选择)Windows 7–>应用–>确定!右键–>Genymotion–>属性–>兼容
2016-03-23 13:10:06
537
转载 android 中遥控器键值的添加和修改
第一步:init.rc:通过service remotecfg /system/bin/remotecfg /system/etc/remote.conf在开机init阶段,将remote.conf中的配置通过ioctl赋值到ir驱动的变量中(用户空间—>内核空间),这样遥控定制化配置才会生效。remotecfg程序代码位于external/remoteconf/irremote.c,可以
2016-03-22 13:19:29
9998
转载 Android frameworks层按键处理流程
事件处理流程1)InputManager负责读取事件并把事件送到frameworks的java层2)WindowManagerService里会有一个InputMonitor类来监听事件变化并做相应的分发处理。3)在WindowManagerService会有一个WindowManagerPolicy来做消息拦截处理。4)WindowManagerService会把消息发给最上面运
2016-03-22 13:11:45
809
转载 apk,task,android:process与android:sharedUserId的区别
apk一般占一个dalvik,一个进程,一个task。通过设置也可以多个进程,占多个task。task是一个activity的栈,其中"可能"含有来自多个App的activity默认情况下,同一个应用程序中的所有组件运行在同一个进程中,而且绝大多数的应用程序也都是这样的。但是,如果我们想要控制让某个特定的组件属于某个进程,我们可以在manifest文件中进行配置。 在每种组件元
2016-03-21 09:48:57
449
转载 android中捕获组合键及屏蔽掉其他键的问题处理
先举一个alt+q的例子当键松开时触发关闭事件 @Override public boolean dispatchKeyEvent(KeyEvent event){ int keyCode = event.getKeyCode(); if(event.isAltPressed() && keyCode == KeyEvent
2016-03-16 17:41:26
974
原创 Android Browser UserAgent设置及查看
关于Android的Browser UserAgent一般有:DESKTOP_USERAGENT, IPHONE_USERAGENT,IPAD_USERAGENT, ANDROID_USERAGENT这几种,当然可以根据需求自己添加其他的UserAgent。涉及到修改UserAgent的问题,一般会修改以下几个文件:/package/apps/Browser/src/co
2016-03-11 17:09:29
2945
原创 make: Nothing to be done for `all_modules'.问题解决
当用命令mmm或者mm编译Android代码时,总是会遇到make: Nothing to be done for `all_modules'.和make: *** No rule to make target `Android.mk'. Stop.这样的错误。 可是你的确修改了代码,怎么会报错呢,报错了怎么解决呢?(没修改代码的肯定是会提示你什么都没有修改)例如我修改了fr
2016-03-10 16:11:29
6455
转载 Android中View的事件分发机制
介绍点击事件的事件分发就是对MotionEvent事件的分发过程,当一个MotionEvent产生了以后,系统需要把这个事件传递给一个具体的View,而这个传递的过程就是分发的过程。涉及到的三个方法dispatchTouchEvent:用来进行事件的分发,如果事件能够传递给当前View,那么此方法一定会被调用,返回结果受当前View的onTouchEvent和View的di
2016-03-10 09:05:18
350
转载 android_如何优雅地给Activity和Fragement传入参数
传参给Fragmentpublic class MyFragment extends Fragment { private static final String ARGS_KEY = "ARGS_KEY"; private int mKey = -1; public static MyFragment newInstance(int type) {
2016-03-04 15:22:32
522
原创 Android 获取屏幕截图
获取屏幕截图,就个人理解屏幕截图的过程如下:首先检索顶层窗口的装饰视图,然后启用绘图缓存,创建绘图缓存,获得绘图缓存,拿到屏幕的宽高,根据这些条件创建一个bitmap,释放绘图缓存的资源。对于不包含状态栏的屏幕截图,需要拿到状态栏的高度,屏幕的高减去状态栏的高度再进行绘图即可。/** * 获取当前屏幕截图,不包含状态栏 * @param activity * @retu
2016-02-15 14:09:21
1512
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人