这台氧含量网络分析仪品牌上面的span in和sample in气体入口要接那个啊?

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
磁氧及红外分析仪调试、操作、检修规程.27,红外碳硫分析仪,红外分析仪,高频红外碳硫分析仪,近红外光谱分析仪,电弧红外分析仪,红外气体分析仪,红外线分析仪,红外光谱分析仪,近红外分析仪
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
磁氧及红外分析仪调试、操作、检修规程.27
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口android开发过程中遇到的问题
记录android开发过程中遇到的问题。
1.在一个xml中能否使用同一个include多次
android中include标签的使用
android button在 linerlayout中底部居中
把button外的权重设为1.0
http://www.cnblogs.com/gzggyy/archive//3083218.html
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=564
http://blog.csdn.net/feng88724/article/details/6318430
http://www.360doc.com/content/13/35.shtml
http://blog.csdn.net/aminfo/article/details/7847761
http://blog.csdn.net/xsl1990/article/details/
http://www.cnblogs.com/bavariama/archive//2881225.html
http://www.oschina.net/question/
http://www.eoeandroid.com/thread-.html
6.imageview
按比例缩放
android:scaleType是控制图片如何resized/moved来匹对ImageView的size。
ImageView.ScaleType / android:scaleType值的意义区别:
CENTER /center
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
CENTER_CROP / centerCrop
按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside
将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter
把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd
把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart
把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY
把图片不按比例扩大/缩小到View的大小显示
MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。
android如何获取时间差?
7.ImageLoader
must be init with configuration before using 错误解决方法
imageLoader.init(ImageLoaderConfiguration.createDefault(MainActivity.this));
8.java.lang.StackOverflowError
StackOverflow 这个问题一般是你的程序里头可能是有死循环或递归调用所产生的;
9.java.lang.ClassCastException:
android.app.Application cannot be cast to MyApplication问题
出这个异常的原因是在项目中添加了新application类(public class Application extends android.app.Application)之后,没有在manifest.xml中添加该类的声明,所以编译器抛出异常: java.lang.ClassCastException: android.app.Application cannot be cast to android_serialport_api.sample.Application
解决方法,在manifest.xml中添加: [html] view plaincopy
&application
android:name=&xxx.MyApplication&&
event.getAction();
Found both android-support-v4 and android-support-v13 in the dependency list.
怎么关联android-support-v4源码
问题:使用viewpager或者fragmentActivity等一些v4包下的类,当我们按F3时无法查看到源码,这个时候就需要我们关联该源码,该源码的关联与android源码的关联不一样。
解决办法:
1、首先在工程的libs目录下创建一个配置文件:android-support-v4.jar.properties(建议这样)
2、查找自己安装的SDK的目录下的android-support-v4的src源码地址
本人的为:D:\eclipse\android-sdk\extras\android\compatibility\v4\src
3、编辑android-support-v4.jar.properties文件为:(注意是双斜杠)
src = D:\\eclipse\\android-sdk\\extras\\android\\compatibility\\v4\\src
4、关闭自己的工程后再打开,此时进去选择ViewPager后F3就能看到源码了。
5、恭喜:android-support-v4 源码已经成功的关联上。
还有种方式,
上面是eclipse中的做法,在androidstudio中的使用更简单。
13.eclipse
修改设置Ctrl+Shift+F长度
在window的Preferences中的Java-&Code Style-&Formatter
到了这一步就是找到Ctrl+Shift+F的格式化模板了,这里不能直接修改。因为是eclipse默认的模板,是只读的。
我们可以new 一个Formatter,然后点击edit就可以修改模板。
我修改模板主要就是修改那个Ctrl+Shift+F后,把我的代码换多行了。
修改选项卡中的Line Wrapping选项卡, 有一个Maximum line with: 80(默认);
这里默认是80我们可以把它修改成120的,那样不超过120个字符就不会被换行了!
其他自己需要的格式都可以在这里面修改。当然你还可以导出你自定义的格式,导出的是xml格式的。以后在其他地方
还可以导入。这样就不用再自定义了。
android-develop 镜像路径[重点推荐]
http://androiddoc.qiniudn.com/
google,被和谐后,通过vpn或者访问上述镜像路径。
15.fragment
Andriod开发技巧——Fragment的懒加载
一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在这个activity刚创建的时候就变成需要初始化大量资源。这样的结果,我们当然不会满意。那么,能不能做到当切换到这个fragment的时候,它才去初始化呢?
答案就在Fragment里的setUserVisibleHint这个方法里&
结合fragment的hide和show使用。
16.让多个Fragment
切换时不重新实例化
关于Android的GridView添加headerView
grid-with-header-list-adapter StickyGridHeaders/&
18.Eclipse设置不格式化注释
Eclipse设置不格式化注释
  注释中写点带格式的文字,format后全乱了,解决办法如下:   Windows -& Preferces -& java -& Code Style -& Formatter -& Edit -& Comments   取消勾选“Enable Javadoc comment formatting”.
19.android-Ultra-Pull-To-Refresh
20.Linux动态gif图的录制
byzanz的安装与使用
Ubuntu下安装
sudo add-apt-repository ppa:fossfreedom/byzanz
sudo apt-get update sudo apt-get install byzanz
你可以通过如下命令来完成录制过程:
byzanz-record -d 40 -x 0 -y 0 -w 400 -h 320 byzanz-demo.gif
-d 40 为录制的时长为 40 秒
-x 0 录制区域的横坐标
-y 0 录制区域的纵坐标,记住:屏幕右上角为原点(0,0)
-w 400 录制区域的宽度
-h 320 录制区域的高度
byzanz-demo.gif 保存的文件名
详细参数可通过byzanz-record --help查看。
http://www.tuicool.com/articles/YFJrem
另外:windows下 GIF屏幕录像机 V2.0
viewpage 无线循环
void onPageScrollStateChanged(int arg0)
此方法是在状态改变的时候调用,其中arg0这个参数有三种状态(0,1,2)。arg0 ==1的时辰默示正在滑动,arg0==2的时辰默示滑动完毕了,arg0==0的时辰默示什么都没做。
当页面开始滑动的时候,三种状态的变化顺序为(1,2,0)
在eclipse.ini文件中加入 -Dorg.eclipse.swt.browser.DefaultType=mozilla 然后clean一下就OK了 执行clean命令
26.viewpager实现画廊(一屏多个Fragment)效果
27.svn命令
通过指令添加文件,每次都到对应文件夹 svn add。这样如果需要add的文件不在一个文件夹时会很麻烦,通过下面的 --force 可以方便的添加。 $ svn add * --force&
当然现在studio集成乐svn git等代码管理工具,很方便,可以直接使用。
constants can only be used in initializers
int CC [] ={1,2,3};
数组定义并附初始值的时候,数组的长度就定了,长度是3
而且数组重新赋值不能再像定义的时候那样
而要一个一个地更改
Array constants can only be used in initializers
好像是说数组不能用于初始化
29.android
30.scrollview在内容较少时也可以滚动
在XML为ScrollView添加属性android:overScrollMode=&always&即可
31.gridview/listview
点击时 android默认背景是黄色的,如何去掉选中时的黄色背景
方法一,在控件被初始化的时候设置
gridView.setSelector(new ColorDrawable(Color.TRANSPARENT));
listView.setSelector(new ColorDrawable(Color.TRANSPARENT));
方法二,在布局文件中设置listSelector属性
android:listSelector=&@android:color/transparent&
android:numColumns=&auto_fit&
android:columnWidth=&50dp&
android:stretchMode=&spacingWidth&
android:layout_weight=&1.0&
android:layout_height=&0dip&
android:layout_width=&match_parent&/&
android:listSelector=&@android:color/transparent&
android:layout_height=&match_parent&
android:layout_width=&match_parent&/&
当然也可以定制化自己想要的效果。
推荐使用方法二,解耦逻辑代码与布局文件。
另外listview还有两个基础问题 问题1:
listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来。
解决办法:
xml中: android:scrollingCache=&false&
或者 android:cacheColorHint=&#&
代码中: setScrollingCacheEnabled(false)
或者 setCacheColorHint(0)
或者setCacheColorHint(Color.TRANSPARENT);
listview的上边和下边有黑色的阴影。
解决办法:
xml中: android:fadingEdge=&none&
代码中:setFadingEdgeLength(0);
32.ScrollView仅支持一个子项,报错ScrollView
can host only one direct child
解决办法:
在ScrollView 中设LinearLayout为子项 ,将其它View放入LinearLayout。
33.viewpager
设置间距和缓存
viewPager.setOffscreenPageLimit(TOTAL_COUNT); viewPager.setPageMargin(getResources().getDimensionPixelSize(R.dimen.page_margin));
34.一级缓存和二级缓存是什么意思??
静态ram缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。 RAM分两种, 一种是静态RAM,SRAM;一种是动态RAM,DRAM。前者的存储速度要比后者快得多,我们现在使用的内存一般都是动态RAM。
有的菜鸟就说了,为了增加系统的速度,把缓存扩大不就行了吗,扩大的越大,缓存的数据越多,系统不就越快了吗
缓存通常都是静态RAM,速度是非常的快,
但是静态RAM集成度低(存储相同的数据,静态RAM的体积是动态RAM的6倍),
价格高(同容量的静态RAM是动态RAM的四倍),
由此可见,扩大静态RAM作为缓存是一个非常愚蠢的行为,
但是为了提高系统的性能和速度,我们必须要扩大缓存,
这样就有了一个折中的方法,不扩大原来的静态RAM缓存,而是增加一些高速动态RAM做为缓存,
这些高速动态RAM速度要比常规动态RAM快,但比原来的静态RAM缓存慢,
我们把原来的静态ram缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。
一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射),它们的存在都是为了减少高速CPU对慢速内存的访问。 通常CPU找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了
35.性能优化:使用SparseArray代替HashMap&Integer,Object&
36.代码规范
// Disallow Parent Intercept, just in case
ViewParent parent = getParent();
if (parent != null) {
parent.requestDisallowInterceptTouchEvent(true);
38.linerlayout布局,如何把一个view指定父view的底部
在纯属布局中,将除最底部以外的的view都设置weight为1就可以了。
39.editview
左侧加drawable
如果只是在左边或者右边加图片 可以用EditeView 的一个属性; android:drawableLeft在text的左边输出一个drawable 如果在中间或者随意加图片的话,需要你重写EditView来实现图文混排!
40.加密算法
41.01-07 15:34:23.160: E/AndroidRuntime(1932): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load AES: findLibrary returned null
01-07 15:37:43.240: E/AndroidRuntime(2537): java.lang.UnsatisfiedLinkError: Native method not found: com.jetsun.hbfc.core.AESCoder.decryptCNew:()Ljava/lang /S
01-07 15:37:43.230: D/dalvikvm(2537): No JNI_OnLoad found in /data/data/com.jetsun.hbfc/lib/libAES.so 0x4160abe0, skipping init
01-07 15:37:43.230: W/dalvikvm(2537): No implementation found for native Lcom/jetsun/hbfc/core/AESC.decryptCNew:()Ljava/lang/S
return makes pointer from integer without a cast [enabled by default]
01-07 17:51:47.520: D/dalvikvm(12438): No JNI_OnLoad found in /data/data/com.jetsun.hbfc/lib/libAES.so 0x41601a80, skipping init 01-07 17:51:47.525: I/JNIMsg(12438): jclass == NULL 01-07 17:51:47.525: I/JNIMsg(12438): step 1 : jclass Begin ok ! 01-07 17:51:47.525:
I/JNIMsg(12438): encryptC == NULL 01-07 17:51:47.525: I/JNIMsg(12438): step 2 : decryptC new failed 01-07 17:51:47.525: I/JNIMsg(12438): step 2 : decryptC method prepared ok !
41.jni基础
android __android_log_print打印函数__源代码&&JNI字段描述符“([Ljava/lang/S)V”&&jni函数讲解&基于
Android NDK 的学习之旅----- C调用Java&No
JNI_OnLoad found in … skipping init&eclipse
ndk配置详细描述&基于 Android NDK 的学习之旅
汇总 ndk精华
有固定的密钥key的AES加密&&android Rsa 算法加 密明文---&公钥---&密文 密文--&密钥--&明文&&java加密与解密的艺术作者&Android
AES加密算法及其实现&AES加密解密Android版
加密方式 AES 加密模式 AES/CBC/PKCS5Padding 加密向量 iv secretkey 秘钥 编码方式 utf-8
43.proguard的使用
代码混淆时,不混淆的部分。
Socket简单用法&&即时通讯
基于xmpp openfire smack开发之openfire介绍和部署[1]&&Openfire+Spark聊天Demo&&openfire的Android客户端实现
45.音频编解码
FFmpeg的Android平台移植—编译篇&
46.f5 负载均衡
掌上指路标 —– APP架构与导航设计&
 APP导航设计的步骤主要为以下三步:
  1. APP框架整理:信息架构 or 任务分析
  2. 框架层级判断: 扁平 vs 树状
  3. 导航具体表现形式:控件形式and摆放位置
48.移动App架构设计
&移动App设计之分层架构+MVC
49.Android
精品开源项目
50.使用GDB调试JNI代码
Android NDK应用原理&&NDK 开发指南---Android NDK概览
51.ubuntu下搜狗输入法,使用过程中突然出现
“搜狗面板程序加载失败 请重启以使用输入法”导致无法使用
解决方法:终端sogou-qimpanel &
52.layout_alignBaseline的作用
53.android:layout_weight的真实含义
android:layout_weight的真实含义是:一旦View设置了该属性(假设有效的情况下),那么该 View的宽度等于原有宽度(android:layout_width)加上剩余空间的占比!&简单的说,就是剩余空间的权重.
54.即时通讯
基础:socket 原理: 如何保证socket长连接&&android中对服务端的长连接【socket】&
1.Android 基于Socket的聊天应用(二)
http://www.cnblogs.com/-run/archive//2434837.html#!comments
Ubuntu 14.04下MySQL服务器和客户端的安装
http://www.linuxidc.com/Linux/912.htm
Ubuntu 安装mysql和简单操作
http://www.cnblogs.com/zhuyp1015/p/3561470.html
如何在mysql中创建数据库
http://www.360doc.com/content/11/35.shtml
Java连接MYSQL 数据库的连接步骤
http://database.51cto.com/art/217.htm
2.基于XMPP的即时聊天项目
需要google账号,目前无法登录 本项目是一套基于android+asmack+openfire+xmpp的安卓即时聊天服务端,项目直连google talk服务器,可以使用谷歌帐号登录客户端,测试需要至少两个谷歌帐号。在程序里添加好友即可聊天
3.Android手机通过socket与pc通信 http://blog.csdn.net/tobacco5648/article/details/7742295
55.ubuntu显示端口占用、正在运行的程序,以及强制关闭一个进程
1. 显示占用某个端口的程序
lsof -i:80
lsof -i:5000
2. 显示某个程序是否在运行,查看某个运行的程序
ps -aux | grep &paster&
ps -aux | grep apache2
3. 杀掉一个进程,和强制杀掉一个进程
kill 211119
sudo kill -s 9 21119
56.设置Activity进入退出动画
使用代码设定
通过调用overridePendingTransition() 可以实时修改Activity的切换动画。但需注意的是:该函数必须在调用startActivity()或者finish()后立即调用,且只有效一次。
57.滑动返回
android-swipelistview
SwipeBackLayout SlidingFinish
自从用了swipebacklayout, 友好度提高了许多。 但是又遇到一个问题 每个界面在滑动返回时候都能够看到桌面 ,然后才跳到我的主界面。&解决方案:&主界面窗口不要设置透明 false,其他界面true
58.Android
虚拟键盘弹出把底部栏顶上去的解决办法
解决办法:
在AndroidManifest的相应的activity中加上:android:windowSoftInputMode=&adjustPan&
在EditText中插入表情图片 (CharacterStyle&SpannableString)&
EditText通常用于显示文字,但有时候也需要在文字中夹杂一些图片,比如QQ中就可以使用表情图片,又比如需要的文字高亮显示等等,如何在android中也做到这样呢?
记得android中有个android.text包,这里提供了对文本的强大的处理功能。
添加图片主要用SpannableString和ImageSpan类:
Drawable drawable = getResources().getDrawable(id);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
//需要处理的文本,[smile]是需要被替代的文本
SpannableString spannable = new SpannableString(getText().toString()+&[smile]&);
//要让图片替代指定的文字就要用ImageSpan
ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
//开始替换,注意第2和第3个参数表示从哪里开始替换到哪里替换结束(start和end)
//最后一个参数类似数学中的集合,[5,12)表示从5到12,包括5但不包括12
spannable.setSpan(span, getText().length(),getText().length()+&[smile]&.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
setText(spannable);
60.viewpager中嵌套gridview
自定义带表情键盘 android 表情,软键盘冲突解决方案(仿微博等SNS应用)&日历 android中ViewPager嵌套GridView引发的一系列UI卡顿不顺畅的问题&&Android
UI开发篇之 ViewPager+九宫格布局 实现左右滑动&ViewPager+GridView实现宫格横向滑动切换
61.异常:java.lang.ClassCastException:
android.view.ViewGroup$LayoutParams cannot be cast to android.view.ViewGroup$MarginLayoutParams的终极解决方式
思路:从原来的View中直接获取LayoutParams。&今天在使用LayoutParams时出现了一个问题,我是这样用的:
在gridview初始化的时候,为gridview添加了一个header(我用的是第三方GridView是可以添加header的):
headerView = new View(getActivity());
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, (int)300);
headerView.setLayoutParams(params);
mGridView.addHeaderView(headerView);
然后当程序执行到某处,我希望通过setLayoutParams来改变这个高度,于是我这样做:
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, 500);
headerView.setLayoutParams(params);
重点是,两个LayoutParams 都是ViewGroup的LayoutParams ,然后一执行就出现下列错误:
java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.view.ViewGroup$MarginLayoutParams
跟android中的很多异常一样,你去仔细推敲异常本来的含义往往是百思不得其姐的,异常说的是两个是不同类型的LayoutParams ,但明明都是ViewGroup的LayoutParams。而且我确定ViewGroup的LayoutParams用在GridView的header上是可以的,因为我不执行上面的第二段代码不会报错(再次强调我用的是第三方GridView是可以添加header的)。
然后就在stackoverflow上查找答案,虽然没找到满意的,但是有个人的回答倒是点醒了我,是不是第二段代码中又重新创建了一个LayoutParams的关系?于是我将第二段代码改成:
**LayoutParams params = headerView.getLayoutParams();**
params.height = 500;
其实就是不去新建一个LayoutParams,而是从原来的View中直接获取LayoutParams。
改完运行结果没有出现异常了。
看来,当一个View已经有了LayoutParams,是不能再次添加一个新创建的LayoutParams的。
62.android4.0的edittext屏蔽输入法时候光标显示问题
通过反射解决&
if (android.os.Build.VERSION.SDK_INT &= 10) {
mEditText.setInputType(InputType.TYPE_NULL);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Class&EditText& cls = EditText.
Method setSoftInputShownOnF
setSoftInputShownOnFocus = cls.getMethod(&setSoftInputShownOnFocus&, boolean.class);
setSoftInputShownOnFocus.setAccessible(true);
setSoftInputShownOnFocus.invoke(mEditText, false);
} catch (Exception e) {
e.printStackTrace();
Class&EditText& cls = EditText.
Method setShowSoftInputOnF
setShowSoftInputOnFocus = cls.getMethod(&setShowSoftInputOnFocus&, boolean.class);
setShowSoftInputOnFocus.setAccessible(true);
setShowSoftInputOnFocus.invoke(mEditText, false);
} catch (Exception e) {
e.printStackTrace();
63.自定义控件
getContext的使用
自定义android用户控件,使用回调函数实现自定义事件
64.如何获取到,EditView
的 粘贴复制呢(解决) 重写editview控件,onTextContextMenuItem 。
Android学习笔记之通过剪切板传递数据&
Android EditText 取消复制粘贴剪贴功能&&在API-11以上,也就是Android 3.0以上的版本,这个操作就无效了,需要用到以下方法:
editText.setCustomSelectionActionModeCallback(new ActionMode.Callback()
editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
如何捕获Edittext的粘贴方法?&向EditView插入qq表情,并可删除表情或文字 android开发教程&
65.android
EditText插入字符串到光标所在位置
EditText mTextInput=(EditText)findViewById(R.id.input);//EditText对象
int index = mTextInput.getSelectionStart();//获取光标所在位置
String text=&I want to input str&;
Editable edit = mTextInput.getEditableText();//获取EditText的文字
if (index & 0 || index &= edit.length() ){
edit.append(text);
edit.insert(index,text);//光标所在位置插入文字
66.Android学习笔记:浅析自己的聊天系统的设计思想&
正则表达式(Invalid escape sequence (valid ones are \b \t \n \f \r & ' \ ) 请问是啥原因呢?
把你的里面的\全部替换为\\即可
NewsCommentDetailActivity
01-20 11:35:28.990: E/AndroidRuntime(6166): java.lang.RuntimeException: Unable to instantiate application com.jetsun.hbfc.core.MyApplication: java.lang.NullPointerException 01-20 11:35:28.990: E/AndroidRuntime(6166): at android.app.LoadedApk.makeApplication(LoadedApk.java:508)
01-20 11:35:28.990: E/AndroidRuntime(6166): at android.app.ActivityThread.handleBindApplication(ActivityThread.java: 11:35:28.990: E/AndroidRuntime(6166): at android.app.ActivityThread.access$1400(ActivityThread.java:131) 01-20 11:35:28.990: E/AndroidRuntime(6166):
at android.app.ActivityThread$H.handleMessage(ActivityThread.java: 11:35:28.990: E/AndroidRuntime(6166): at android.os.Handler.dispatchMessage(Handler.java:99) 01-20 11:35:28.990: E/AndroidRuntime(6166): at android.os.Looper.loop(Looper.java:137)
01-20 11:35:28.990: E/AndroidRuntime(6166): at android.app.ActivityThread.main(ActivityThread.java: 11:35:28.990: E/AndroidRuntime(6166): at java.lang.reflect.Method.invokeNative(Native Method) 01-20 11:35:28.990: E/AndroidRuntime(6166): at java.lang.reflect.Method.invoke(Method.java:511)
01-20 11:35:28.990: E/AndroidRuntime(6166): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 01-20 11:35:28.990: E/AndroidRuntime(6166): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 01-20 11:35:28.990: E/AndroidRuntime(6166):
at dalvik.system.NativeStart.main(Native Method) 01-20 11:35:28.990: E/AndroidRuntime(6166): Caused by: java.lang.NullPointerException 01-20 11:35:28.990: E/AndroidRuntime(6166): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:384)
01-20 11:35:28.990: E/AndroidRuntime(6166): at android.app.LoadedApk.getClassLoader(LoadedApk.java:327)
01-20 04:05:16.637: E/AndroidRuntime(1372): Process: com.jetsun.hbfc:webview, PID:
04:05:16.637: E/AndroidRuntime(1372): java.lang.RuntimeException: Unable to instantiate application com.jetsun.hbfc.core.MyApplication: java.lang.IllegalStateException:
Unable to get package info for com.jetsun. is package not installed? 01-20 04:05:16.637: E/AndroidRuntime(1372): at android.app.LoadedApk.makeApplication(LoadedApk.java:561) 01-20 04:05:16.637: E/AndroidRuntime(1372): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4491)
01-20 04:05:16.637: E/AndroidRuntime(1372): at android.app.ActivityThread.access$1500(ActivityThread.java:144) 01-20 04:05:16.637: E/AndroidRuntime(1372): at android.app.ActivityThread$H.handleMessage(ActivityThread.java: 04:05:16.637: E/AndroidRuntime(1372):
at android.os.Handler.dispatchMessage(Handler.java:102) 01-20 04:05:16.637: E/AndroidRuntime(1372): at android.os.Looper.loop(Looper.java:135) 01-20 04:05:16.637: E/AndroidRuntime(1372): at android.app.ActivityThread.main(ActivityThread.java: 04:05:16.637:
E/AndroidRuntime(1372): at java.lang.reflect.Method.invoke(Native Method) 01-20 04:05:16.637: E/AndroidRuntime(1372): at java.lang.reflect.Method.invoke(Method.java:372) 01-20 04:05:16.637: E/AndroidRuntime(1372): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
01-20 04:05:16.637: E/AndroidRuntime(1372): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 01-20 04:05:16.637: E/AndroidRuntime(1372): Caused by: java.lang.IllegalStateException: Unable to get package info for com.jetsun. is package not
installed? 01-20 04:05:16.637: E/AndroidRuntime(1372): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:410) 01-20 04:05:16.637: E/AndroidRuntime(1372): at android.app.LoadedApk.getClassLoader(LoadedApk.java:363) 01-20 04:05:16.637:
E/AndroidRuntime(1372): at android.app.LoadedApk.makeApplication(LoadedApk.java:554)
70.解决eclipse闪退的办法&
方法1.最好解决办法:
删除文件 [workspace]/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
方法2.在文件eclipse/configuration/config.ini末尾加上如下一行:
org.eclipse.swt.browser.DefaultType=mozilla
但是不怎么起作用,在不断切换引用时,有时也会闪退。回来转到androidstudio,用eclipse不多了,偶尔用用没问题。
71.Android
WebView的前进、后退、与刷新
mWebView.goBack();
mWebView.goForward();//前进
mWebView.reload();
webview有自己的堆stack
must call removeView() on the child's parent first
在做alertdialog是的时候报了这么一个错误:
java.lang.IllegalStateException:
The specified child already has a parent.
You must call removeView() on the child's parent first.
搞了许久,终于理解了。
et1 = (EditText)findViewById(R.id.editText1);
builder.setView(et1);
-- AlertDialog.Builder builder
et1我写在了xml里面,这样报错,原因是一女不可二嫁。
et1的parent即是R.layout.main 又是AlertDialog。
自然就报错了要你removeView()了。
解决方法有两种
1.动态生成EditText
et1 = new EditText(this);
builder.setView(et1);
2. 放在另一个xml中,用inflater
LayoutInflater inflater = LayoutInflater.from(this);
View textEntryView = inflater.inflate(R.layout.test1, null);
et1 = (EditText)textEntryView.findViewById(R.id.editText1);
builder.setView(textEntryView ); 注意这里是textEntryView ,不是et1
补充还有一种方法,如果此布局中只有该view,可以直接在xml只布局此view。
73.Activity切换动画无效(android:windowIsTranslucent)影响(android:windowAnimationStyle)
style里面设置了android:windowIsTranslucent这个属性
74.Android
解决程序启动时的黑屏问题&
android 界面切换黑屏处理从A切换到B的过程中出现黑屏,可以在Manifest文件中改变B的theme,在theme里添加&item name=&android:windowIsTranslucent&&true&/item&,这样从A到B的过程中,因为B是透明的,所以背景就是A。这样的用户体验比较好
atvity主题加透明属性 如下: &item name=&android:windowIsTranslucent&&true&/item&
在该atvtivity中使用webview。 webview中有videos,可以播放视频,点击视频全屏后,导致其上级fragmentactivity重新加载,导致内容空白。
76.打包过程中出现错误
Unexpected error while computing stack sizes:
java.lang.IllegalArgumentException] (Stack size becomes negative after instruction [12] invokevirtual #96 in [cn/jpush/android/a/a.()V])
解决办法: 如何在代码时混淆忽略 jpush-sdk-release.jar?&
请下载最新的proguard.jar,
umeng官方最新的试了也是有问题,估计兼容型的不好吧,采用http://download.csdn.net/detail/msn5061这个 ok。
并替换你Android Sdk &tools\proguard\lib\proguard.jar&
在你的proguard.cfg加上代码:
cn.jpush.**
-keep class cn.jpush.** { *; }
77.android
eclipse设置的断点无效的解决方案
1.排除 Run——Skip All Breakpoints
2.排除断点无效的activity所在的进程是否是主进程。
78.极光推送富媒体
推送富媒体时,推送模版其实是通知,推送文件其实是自定义消息类型
通知 vs. 自定义消息
http://docs.jpush.cn/pages/viewpage.action?pageId=3309701
富文本页面 Javascript 回调API
http://docs.jpush.cn/pages/viewpage.action?pageId=7536748
Rich Push 开发指南
http://docs.jpush.cn/pages/viewpage.action?pageId=7536799
79.内部跳转
Routable for Android
80.fjrefox
firebug插件。chrome 自身F12都可以方便的查看并且编辑html
带有凭证的activity 必须在一个进程中。否则凭证会为空。还有一点在调试的时候,非主进程无法和主进程跳转调试。
82.apktool反编译过程中出现如下错误
Exception in thread &main& brut.androlib.AndrolibException: Could not decode arsc file
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56)
at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:491)
at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74)
at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66)
at brut.androlib.Androlib.getResTable(Androlib.java:50)
at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
at brut.apktool.Main.cmdDecode(Main.java:146)
at brut.apktool.Main.main(Main.java:77)
Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x
at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44)
at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:102)
at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
... 8 more
由于使用新的adt,而反编译的apktool.jar不是最新的导致。使用新的apktool.jar替换原来的就可以了。官方下载地址&
83.渠道打包工具
之前有的umeng,但是现在无法使用【因为android更新了编译的sdk版本,而umeng不在提供更新】。目前的做法是通过 gradle来打包
84.genymotion快速高效的android模拟器
需要翻墙。部分需要付费
85.使用Vitamio打造自己的Android万能播放器
直播方面 可以参考我翻译的&86. Ctrl+Shift+F7
可以高亮当前元素在当前文件中的使用 Android Studio 如何提示函数用法? 先选中,然后按F2
87.android
提供的很多List控件如 listview、gridview 默认都会显示一个fadingedge的东西,它在View的top和bottom处各显示一个渐变半透的阴影以达到更好的视觉效果,但是这个带来的副作用就是导致在性能不是那么强劲的机器上,一些listview,gridview的拖动会显得很不流畅,因为我们知道绘制带Alpha的图片是最耗时的。
我们的优化思路就是对这个fadingedge做一些修改,当view处于滚动状态时,通过接口setVerticalFadingEdgeEnabled(false)让其不显示fadingedge,当view处于静止状态时,通过接口setVerticalFadingEdgeEnabled(true)恢复显示fadingedge。以上的listview和gridview等控件都是继承与AbsListView,所以我们直接修改framework中的AbsListView.java文件,就可以达到系统级的改动效果了。
从github上clone下来swipebacklayout
编译报错查看log为 android-studio llij.ide.plugins.PluginManager - null
修改方法 tasks.withType(Compile) { options.encoding = &UTF-8& } 改为 tasks.withType(JavaCompile) { options.encoding = &UTF-8& }
89.Error:Execution
failed for task ':xxx:compileDebugNdk'.
NDK not configured. Download the NDK from&&add
ndk.dir=path/to/ndk in local.properties. (On Windows, make sure you escape backslashes, e.g. C:\ndk rather than C:\ndk)
在androidstudio中的local.properties中添加ndk.dir= 你的ndk的路径
90.Error:(8,
0) Could not find property 'ANDROID_BUILD_SDK_VERSION' on project ':ActionBar-PullToRefresh'.
dependencies { compile 'com.github.castorflex.smoothprogressbar:library:0.4.+@aar' } 解决方法 I think you should also import 'SmoothProgressBar' library in your project&
#####91.@+id @id android:id ?android:attr
。@+id:宣告一個id值來識別控制項
。@id:透過id值引用控制項
。android:id:透過id值, 引用Android系統內部的資源
。?android:attr:引用Android預置定義樣式
#####92. Looks like there is no way to avoid modifications made by the import plugin. All the settings it has is three checkboxes related to dependency management. I tried to uncheck all of them but still it does change my project structure.
I managed to add existing library projects manually:
Copied library's directory under the root directory of my project.Referenced that library in settings.gradle by adding include ':libraryA'.Added dependency to my project's build.gradle: compile project(':libraryA').
Moreover, after that the IDE recognized that library as module and highlighted its folder in bold font whithin Project Structure.
#####93.如何从当前的activity获得根视图 或者 Android如何获取Activity的View?
((ViewGroup)findViewById(android.R.id.content)).getChildAt(0) 或者 getWindow().getDecorView().findViewById(android.R.id.content)
#####94.radiogroup中的radiobutton如何不显示图标button,并且可以等比例再用wight android:button=&@none& 或@null android:drawableTop =&@drawable/xxx& 或者也设置为空
#####95.搜索也是一门艺术 浓缩搜索 详细搜索
#####96.android layoutinfater 没有显示内容 检查parent试图是否为空
#####97..Error:Execution failed for task ':app:dexDebug'.UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimR at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) at
com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) at com.android.dx.command.dexer.Main.run(Main.java:246) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)
检查 Multiple dex #####98.android动画的三种形式 tween animition ,frame animition ,property animition
#####99.LoopingViewPager QuickReturn
#####100. appcompat-v7:21.0.0': No resource found that matches the given name: attr 'android:actionModeShareDrawable'
#####101.recycleview vs listview head foot .recycleview实现gridview 新事物不要躲避,机遇。
#####102.清除Android工程中没用到的资源&
#####103.xmlns:tools与tools:context tools:context=&activity name&这一句不会被打包进APK。只是ADT的Layout Editor在你当前的Layout文件里面设置对应的渲染上下文,说明你当前的Layout所在的渲染上下文是activity name对应的那个activity,如果这个activity在manifest文件中设置了Theme,那么ADT的Layout Editor会根据这个Theme来渲染你当前的Layout。就是说如果你设置的MainActivity设置了一个Theme.Light(其他的也可以),那么你在可视化布局管理器里面看到的背景啊控件啊什么的就应该是Theme.Light的样子。仅用于给你看所见即所得的效果而已。
#####104. android-studio下使用volley Android working with Volley Library&&
#####105.androidstudio 导入libs后要同步一下才可以用
#####106.fragment + butterknife 的使用 othersetting--&Compiler → Annotation Processors. Check &Enable annotation processing&.
#####107. com.astuetz.PagerSlidingTabStrip$PageListener.onPageScrolled(
#####108. E/InputEventReceiver﹕ Exception dispatching input event. E/MessageQueue-JNI﹕ Exception in MessageQueue callback: handleReceiveCallback E/MessageQueue-JNI﹕ java.lang.RuntimeException: native typeface cannot be made at android.graphics.Typeface.(Typeface.java:175)
at android.graphics.Typeface.createFromAsset(Typeface.java:149) at NewsFragment$1.onPageSelected(NewsFragment.java:74)
androidstudio中assert的位置和eclipse中的不同。需要注意。否则调用assert中资源会找不到而出现问题。
#####109.Custom Fonts in Android
Typeface tf = Typeface.createFromAsset(getActivity().getAssets(), &fonts/font_name.ttf&); Typeface tf2 = Typeface.createFromAsset(getActivity().getAssets(), &fonts/font_name2.ttf&);
TextView tv = (TextView) findViewById(R.id.textview); tv.setTypeface(tf); //Set Typeface
EditText et = (EditText) findViewById(R.id.edittext); et.setTypeface(tf2);
#####110.PagerSlidingTabStrip the view throws an exception if there are no tabs available to display. It would be great if the view failed gracefully or gave a better error message.&
#####111. Android开发之ScrollView中嵌套ListView的解决方案&
重写listview的onmeasure方法
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE && 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
这个方法有一个同样的毛病,就是默认显示的首项是ListView,需要手动把ScrollView滚动至最顶端。
sv = (ScrollView) findViewById(R.id.act_solution_4_sv);
sv.smoothScrollTo(0, 0);
int AT_MOST Measure specification mode: The child can be as large as it wants up to the specified size.
int EXACTLY Measure specification mode: The parent has determined an exact size for the child.
int UNSPECIFIED Measure specification mode: The parent has not imposed any constraint on the child.
java.lang.NullPointerException at android.webkit.HTML5VideoView.isPlaying(HTML5VideoView.java:122) at android.webkit.HTML5VideoViewProxy$VideoPlayer.isPlaying(HTML5VideoViewProxy.java:269)
检查清单文件对应activity的配置
android:configChanges=&orientation|screenLayout&
#####113. Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
#####114.&这个网站可以在线配置action bar的样式,支持holo、support v7、sherlock
#####115.在其它界面异常之后返回到FragmentActivity Fragment显示异常(重叠或不显示)解决方 ...
前面专门开了个帖来问这个问题,问题描述详见:http://www.eoeandroid.com/thread--1.html
当然,问题没有解决掉,一直也很郁闷,今天花了点时间换了N多关键词来找,最后也忘了在哪里看到一个方法,死马当活马医的写上,居然好了。
解决方案是,在FragmentActivity里重写onSaveInstanceState,并且去掉super.onSaveInstanceState()即可。
原因:猜测应该是在二级界面抛了异常之后,应用在返回上级界面时会从onSaveInstanceState内读取FragmentActivity缓存的状态,所以导致Fragment全部显示(显示重叠)或者显示不出来。(只是猜测)
@Override protected void onSaveInstanceState(Bundle outState) { }
#####116.修复Android App中出现的重复菜单项及Fragment重叠&
fragment replace出现重叠
一般fragment的容器都是fragment,用到的方法:
FragmentManager fm = getActivity().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, fragment);
ft.addToBackStack(null);
ft.commit();
replace这个方法在fragment内部直接代入布局的id是不会有问题的,但是在外部比如Activitiy中用就会出现fragment叠加的问题。
有很多人说给每个fragment设置背景色或图片,但是我觉得额外费资源。
其实只要改成这样就好了,但这之中的原理又有谁懂呢?
http://stackoverflow.com/questions//android-replace-fragment-still-displays-some-of-the-replaced-fragment
transaction.replace(((ViewGroup)(getView().getParent())).getId(), fragment);
#####117.通过activity 得到它的fM,通过tag指定到上级fragment,从而获取到其中的接口数据 yyb if (getActivity().getSupportFragmentManager().findFragmentByTag(&videos&) instanceof QuickReturnInterface) { mCoordinator = (QuickReturnInterface) getActivity().getSupportFragmentManager().findFragmentByTag(&news&);
} else { throw new ClassCastException(&Parent container must implement the QuickReturnInterface&); }
#####118.内存优化相关 ANDROID内存优化(大汇总)&
#####119.PagerSlidingTabStrip Changing the title of the adapter and notifyDatasetChanged does not work. #13 Call notifyDataSetChanged() on the PagerSlidingTabStrip instead. Worked for me yesterday with data loaded from a CursorLoader.
#####120.Ubuntu下的屏幕录制软件RecordMyDesktop
sudo apt-get install gtk-recordmydesktop
安装好之后该软件会在影音软件里面,打开就可以。然后可以选择需要录制的窗口,如果不选择的话就默认是用户在屏幕上的所有操作。点击“录制”就开始了,此时该软件隐藏在
上方的任务栏(红色圆圈),可以随时停止录制。得到的视频保存在主目录下,其格式为Ogg。如果需要把它转换为avi格式,可以安装软件mencoder,命令如下:
sudo apt-get install mencoder
然后用下面的命令转换:
mencoder -ovc lavc -oac copy -lavcoptsvcodec=mpeg4 -o outfile.avi infile.ogv
ubuntu动态截图,制作GIF动画
Ubuntu 下, 如何录制 gif 格式的屏幕截图
1. 安装 gtk-recordmydesktop 来录制屏幕, 安装 mplayer 將视频分解成单帧图片, 安装 imagemagick 將单帧图片压缩成一张 gif:
sudo apt-get install imagemagick mplayer gtk-recordmydesktop
2. 命令行下执行, 录制并保存文件为 out.ogv:
gtk-recordmydesktop
3. 执行如下命令將 out.ogv 分解成单帧图片:
mplayer -ao null out.ogv -vo jpeg:outdir=.
4. 执行如下命令將单帧图片压缩成 gif 图片:
convert *.jpg out.gif
5. 执行如下命令將 gif 图片进行压缩:
convert out.gif -fuzz 10% -layers Optimize optimized.gif
Live Like You're Dying And Never Stop Tying
#####121.一个ListView中会创建很多个convertview,并不是所有的都复用的,比如同一屏显示的肯定都是不一样的convertview。
#####122.性能优化 框架的选择。volley【尽量google支持的或者原生的】 buttferty greendao 【没有采用反射技术的,比如greendao使用的是code generation。而不是注解】
为什么greenDao使用的是code generation,而不是注解?
对于greenDao,代码生成是非常合理的。在Android平台上,基于注解的解决方式是有缺陷的:它们不得不依赖于元数据的解析和反射。特别是反射,会显著降低ORM工具的性能。另一方面,greenDao会为Android生成优化过的代码。这些生成的代码完全避免了反射。这也是greenDao如此快的主要原因。另一个优势是大小。
greenDao的核心lib是非常小的(在100K以下,包括单元测试)。这是因为对于一些ORM的内部逻辑都在generator中,而不是在核心库中。
greenDao包含了:DaoCore,DaoGenerator和DaoTest。DaoCore是需要你加入到android项目中的,在Apache License 2版本以下是许可的。
DaoGenerator是java程序,负责实体的生成,DAO和其它的文件。DaoTest是单元测试用例额,确保了greenDao本身和其稳定性。
DaoGenerator 和DaoTest 在GPL V3以下是可用的。这些许可条款可以满足大部分的开发者使用。
#####123.Lazy Loading lazy不是翻译成懒,差不多算延迟、推迟的意思。 是说不在初始化时loading,而是推迟到必须loading时才进行loading。
#####124.android-stuido File & Invalidate 问题:could not save application settings:java.util.zip.zipexception:incorrect header check
https://code.google.com/p/android/issues/detail?id=56190
解决 It looks like there's a corrupted cache. To work around this, invoke&File & Invalidate&Caches. If you can't start Android Studio at all, try going to the cache directory (its location depends on your platform) and delete
it, then start Studio.
#####125.&.gradle /local.properties /.idea/workspace.xml /.idea/libraries .DS_Store /build
# Built application files *.apk *.ap_
# Files for the Dalvik VM
# Java class files
# Generated files
# Gradle files
# Local configuration file (sdk path, etc)
local.properties
# Proguard folder generated by Eclipse
# Log Files
#####126.NDK With Android Studio&
#####127.chrome+红杏 honx.in/i/VLMhwoIaA1yvXz7n
#####127.ANDROID仿IOS时间_ANDROID仿IOS弹出提示框&
#####128. Android TextView drawableLeft 在代码中实现
Drawable drawable= getResources().getDrawable(R.drawable.drawable); /// 这一步必须要做,否则不会显示. drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); myTextview.setCompoundDrawables(drawable,null,null,null);
public void setCompoundDrawablesWithIntrinsicBounds (Drawable left, Drawable top, Drawable right, Drawable bottom)
#####129. /* 去锯齿 */ paint.setAntiAlias(true);
#####130.android 画图之setXfermode
&setXfermode
设置两张图片相交时的模式
我们知道 在正常的情况下,在已有的图像上绘图将会在其上面添加一层新的形状。 如果新的Paint是完全不透明的,那么它将完全遮挡住下面的Paint;
而setXfermode就可以来解决这个问题
一般来说 用法是这样的
[java] view plaincopy
Canvas canvas = new Canvas(bitmap1);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(mask, 0f, 0f, paint);
#####131. ubuntu android cordova Setting up PhoneGap on Ubuntu for Android app development
#####132.webview的页面都finish了居然还能听到视频播放的声音,查了下发现webview的 onResume方法可以继续播放, onPause可以暂停播放, 但是这两个方法都是在Added in API level 11添加的,所以需要用反射来完成。 停止播放:在页面的onPause方法中使用: webView.getClass().getMethod(&onPause&).invoke(webView,(Object[])null); 继续播放:在页面的onResume方法中使用: webView.getClass().getMethod(&onResume&).invoke(webView,(Object[])null);
这样就可以控制视频的暂停和继续播放了。
在webView的Activity配置里面加上:
android:hardwareAccelerated=&true&
#####133.Create new project on Android, Error: Studio Unknown host 'services.gradle.org' 解决方法 please try following steps: Go to..
File --& settings --& HTTP Proxy [Under IDE Settings] --& Auto-detect proxy settings
you can also use the test connection button and check with google.com if it works or not
[关于红杏的公益代理, Android Studio以及freso的编译](http://www.liaohuqiu.net/cn/posts/about-red-apricot-and-compiling-fresco/)
#####134.ListView.setOnItemClickListener 点击无效
如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效,
事件会被子View捕获到,ListView无法捕获处理该事件.
解决方法:
在checkbox、button对应的view处加android:focusable=&false&
android:clickable=&false&android:focusableInTouchMode=&false&
其中focusable是关键
从OnClickListener调用getSelectedItemPosition(),Click 和selection 是不相关的,Selection是通过D-pad or trackball 来操作的,Click通常是点击操作的。
arg2参数才是点击事件位置的参数
#####135.listview addheader 如果有多个header,可以把多个header封装。把封装后的view作为header
#####136.emojicon emojicon,&&emojicon,&
#####137.新闻评论页,如何实现盖楼,listview的高度自适应? 控件的高度 设为wrap_content
#####138.android改变CheckBox和后面文字的间距&&解决方法: 1.设置android:paddingLeft=&25dip&,就可以了。 2.设置checkbox的背景图片。系统默认的给checkbox加的有一个透明的背景。
#####139.volley请求超时 如何处理&
myRequest.setRetryPolicy(new DefaultRetryPolicy(
MY_SOCKET_TIMEOUT_MS,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
#####140.Listview getItemViewType的使用 对于不同xml,使用多个viewhold
#####141.Android “Only the original thread that created a view hierarchy can touch its views.”&thread
= new Thread(){ @Override public void run() { try { synchronized (this) { wait(5000);
runOnUiThread(new Runnable() {
public void run() {
dbloadingInfo.setVisibility(View.VISIBLE);
bar.setVisibility(View.INVISIBLE);
loadingText.setVisibility(View.INVISIBLE);
} catch (InterruptedException e) {
e.printStackTrace();
Intent mainActivity = new Intent(getApplicationContext(),MainActivity.class);
startActivity(mainActivity);
thread.start();
#####142.Java SDK提供了对上述三种压缩技术的支持:Inflater类和Deflater类直接用zlib库对数据压缩/ 解压缩,GZIPInputStream类和GZIPOutputStream类提供了对gzip格式的支持,ZipFile、Zi pInputStream、ZipOutputStream则用于处理zip格式的文件。
所以,你应当根据你的具体需求,选择不同的压缩技术:如果只需要压缩/解压缩数据,你
可以直接用zlib实现,如果需要生成gzip格式的文件或解压其他工具的压缩结果,你就必须
用gzip或zip等相关的类来处理了。
#####143.利用volley进行http设置请求头、超时及请求参数设置(post)
这里以post请求说明,get请求相似设置请求头及超时。
1.自定义request,继承com.android.volley.Request
2.构造方法实现(basecallback,为自定义的监听,实现Response.Listener,ErrorListener接口)--post请求
public BaseRequest(String url,String params, BaseCallback&T& callback)
super(Method.POST, url, callback);
this.callback =
this.params =
Log.e(TAG, &request:& + params);
setShouldCache(false);
3.请求头设置:重写getHeaders方法
public Map&String, String& getHeaders() throws AuthFailureError
Map&String, String& headers = new HashMap&String, String&();
headers.put(&Charset&, &UTF-8&);
headers.put(&Content-Type&, &application/x-javascript&);
headers.put(&Accept-Encoding&, &gzip,deflate&);
设置字符集为UTF-8,并采用gzip压缩传输
4.超时设置:重写getRetryPolicy方法
public RetryPolicy getRetryPolicy()
RetryPolicy retryPolicy = new DefaultRetryPolicy(SOCKET_TIMEOUT, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
return retryP
5.请求参数组装:重写getBody方法
public byte[] getBody() throws AuthFailureError
return params == null ? super.getBody() : params.getBytes();
#####144. android handler的警告Handler Class Should be Static or Leaks Occur
在使用Handler更新UI的时候,我是这样写的:
public class SampleActivity extends Activity {
private final Handler mLeakyHandler = new Handler() {
public void handleMessage(Message msg) {
看起来很正常的,但是 Android Lint 却给出了警告:
This Handler class should be static or leaks might occur
意思是说:这个Handler 必须是static的,否则就会引发内存泄露。
其实,对于这个问题,Android Framework 的工程师 Romain Guy 早已经在Google论坛上做出过解释,并且给出了他的建议写法:
I wrote that debugging code because of a couple of memory leaks I
found in the Android codebase. Like you said, a Message has a
reference to the Handler which, when it's inner and non-static, has a
reference to the outer this (an Activity for instance.) If the Message
lives in the queue for a long time, which happens fairly easily when
posting a delayed message for instance, you keep a reference to the
Activity and &leak& all the views and resources. It gets even worse
when you obtain a Message and don't post it right away but keep it
somewhere (for instance in a static structure) for later use.
他的建议写法是:
class OuterClass {
class InnerClass {
private final WeakReference&OuterClass& mT
InnerClass(OuterClass target) {
mTarget = new WeakReference&OuterClass&(target);
void doSomething() {
OuterClass target = mTarget.get();
if (target != null) {
target.do();
下面,我们进一步解释一下:
1.Android App启动的时候,Android Framework 为主线程创建一个Looper对象,这个Looper对象将贯穿这个App的整个生命周期,它实现了一个消息队列(Message
Queue),并且开启一个循环来处理Message对象。而Framework的主要事件都包含着内部Message对象,当这些事件被触发的时候,Message对象会被加到消息队列中执行。
2.当一个Handler被实例化时(如上面那样),它将和主线程Looper对象的消息队列相关联,被推到消息队列中的Message对象将持有一个Handler的引用以便于当Looper处理到这个Message的时候,Framework执行Handler的handleMessage(Message)方法。
3.在 Java 语言中,非静态匿名内部类将持有一个对外部类的隐式引用,而静态内部类则不会。
到底内存泄露是在哪里发生的呢?以下面代码为例:
public class SampleActivity extends Activity {
private final Handler mLeakyHandler = new Handler() {
public void handleMessage(Message msg) {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Post a message and delay its execution for 10 minutes.
mLeakyHandler.postDelayed(new Runnable() {
public void run() { }
}, 60 * 10 * 1000);
// Go back to the previous Activity.
当Activity被finish()掉,Message 将存在于消息队列中长达10分钟的时间才会被执行到。这个Message持有一个对Handler的引用,Handler也会持有一个对于外部类(SampleActivity)的隐式引用,这些引用在Message被执行前将一直保持,这样会保证Activity的上下文不被垃圾回收机制回收,同时也会泄露应用程序的资源(views and resources)。
为解决这个问题,下面这段代码中的Handler则是一个静态匿名内部类。静态匿名内部类不会持有一个对外部类的隐式引用,因此Activity将不会被泄露。如果你需要在Handler中调用外部Activity的方法,就让Handler持有一个对Activity的WeakReference,这样就不会泄露Activity的上下文了,如下所示:
public class SampleActivity extends Activity {
* Instances of static inner classes do not hold an implicit
* reference to their outer class.
private static class MyHandler extends Handler {
private final WeakReference&SampleActivity& mA
public MyHandler(SampleActivity activity) {
mActivity = new WeakReference&SampleActivity&(activity);
public void handleMessage(Message msg) {
SampleActivity activity = mActivity.get();
if (activity != null) {
private final MyHandler mHandler = new MyHandler(this);
* Instances of anonymous classes do not hold an implicit
* reference to their outer class when they are &static&.
private static final Runnable sRunnable = new Runnable() {
public void run() { }
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Post a message and delay its execution for 10 minutes.
mHandler.postDelayed(sRunnable, 60 * 10 * 1000);
// Go back to the previous Activity.
在实际开发中,如果内部类的生命周期和Activity的生命周期不一致(比如上面那种,Activity finish()之后要等10分钟,内部类的实例才会执行),则在Activity中要避免使用非静态的内部类,这种情况,就使用一个静态内部类,同时持有一个对Activity的WeakReference。
146.FragmentPagerAdapter
(getSupportFragmentManager() ) You must call removeView() on the child's parent
How to solve for viewpager : The specified child already has a parent. You must call removeView() on the child's parent first
I had the same problem when I used
View res = inflater.inflate(R.layout.fragment_guide_search, container);
inside Fragment.onCreateView(...
You must call
View res = inflater.inflate(R.layout.fragment_guide_search, container, false);
View res = inflater.inflate(R.layout.fragment_guide_search, null);
使用代码为textview设置drawableLeft
Drawable drawable= getResources().getDrawable(R.drawable.drawable);
/// 这一步必须要做,否则不会显示.
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
myTextview.setCompoundDrawables(drawable,null,null,null);
146.Android如何在java代码中设置margin
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(10, 20, 30, 40);
imageView.setLayoutParams(lp);
147.出错了表现:Conversion
to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
解决:谷歌出了 新的Multidex支持库
androidstudio
https://developer.android.com/tools/building/multidex.html
compileSdkVersion 21
buildToolsVersion &21.1.0&
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
// Enabling multidex support.
multiDexEnabled true
dependencies {
compile 'com.android.support:multidex:1.0.0'
to get Nautilus-scripts working on Ubuntu 14.04?
nautilus-actions-config-tool
http://askubuntu.com/questions/281062/how-to-get-nautilus-scripts-working-on-ubuntu-13-04
设置好之后 nautilus -q。重启下nautilus服务生效
http://ubuntuhandbook.org/index.php/2014/04/ubuntu-14-04-add-open-as-rootadministrator-to-context-menu/
imageloader显示图片所使用的uri:
String imageUri = &http://site.com/image.png&; // from Web
String imageUri = &file:///mnt/sdcard/image.png&; // from SD card
String imageUri = &content://media/external/audio/albumart/13&; // from content provider
String imageUri = &assets://image.png&; // from assets
String imageUri = &drawable://& + R.drawable. // from drawables (only images, non-9patch)
注意:使用drawable://除非你真的需要他。时刻要注意使用本地图片加载方法:setImageResource带代替ImageLoader。
五,有用的信息
1,ImageLoader.getInstance().init(config); // 在应用开启的时候初始化。
2,&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE&/&sd卡缓存是需要写入权限
3,ImageLoader根据ImageView的width,height确定图片的宽高。
4,如果经常出现OOM
①减少配置之中线程池的大小,(.threadPoolSize).推荐1-5;
②使用.bitmapConfig(Bitmap.config.RGB_565)代替ARGB_8888;
③使用.imageScaleType(ImageScaleType.IN_SAMPLE_INT)或者try.imageScaleType(ImageScaleType.EXACTLY);
④避免使用RoundedBitmapDisplayer.他会创建新的ARGB_;式的Bitmap对象;
⑤使用.memoryCache(new WeakMemoryCache()),不要使用.cacheInMemory();
5,内存缓存,sd卡缓存,显示图片,可以使用已经初始化过的实现;
6,为了避免使用list,grid,scroll,你可以使用
boolean pauseOnScroll = // or true
boolean pauseOnFling = // or false
PauseOnScrollListener listener = new PauseOnScrollListener(imageLoader, pauseOnScroll, pauseOnFling);
listView.setOnScrollListener(listener);
150.View's
getWidth() and getHeight() returning 0
You should use: image1.getLayoutParams().
http://stackoverflow.com/questions//views-getwidth-and-getheight-returning-0
151.GridView的行数问题
在gridview里边设置属性 android:numColumns=&3&;意思是三列 然后在BaseAdapter的 getCount()方法 里边返回9。这样就可以平分为3行3列了
152.ArrayList和数组间的相互转换&
ArrayList提供public &T& T[] toArray(T[] a)
public static &T& List&T& asList(T... a)
153.Unexpected
response code 500
网页已经被关闭
还有就是,一般由于内部服务器错误造成的。
服务器关闭或者服务器升级而造成的资源无法访问
由于服务器太忙而造成的,此时无法处理请求。通讯量超出 Web 站 点的能力
banner广告及view pager 的小圆点指示器 CirclePageIndicator&
155.使用ViewPager+GridView实现横向滑动的效果&
156.CircleImageView&
157.ViewPager
FragmentPagerAdapter Nullpointer fragmentpageradapter和pageradapter的区别。使用的场景。
158.unable
to have ViewPager WRAP_CONTENT&
Overriding onMeasure of your ViewPager as follows will make it get the height of the biggest child it currently has.
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = 0;
for(int i = 0; i & getChildCount(); i++) {
View child = getChildAt(i);
child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight();
if(h & height) height =
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
159.在自定义视图布局文件中,仅支持FrameLayout、LinearLayout、RelativeLayout三种布局控件和AnalogClock、Chronometer、Button、ImageButton、ImageView、ProgressBar、TextView、ViewFlipper、ListView、GridView、StackView和AdapterViewFlipper这些显示控件,不支持这些类的子类或Android提供的其他控件。否则会引起ClassNotFoundException异常
160.Android模拟器Genymotion加载ARM架构so文件
http://www.eoeandroid.com/thread--1.html
https://www.genymotion.com/#!/support?chapter=collapse-logs#faq
161.Viewpager
wrap_hight导致不显示。 重写ViewPager
: unable to have ViewPager WRAP_CONTENT
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int hight = 0;
for (int i = 0; i & getChildCount(); i++) {
View child = getChildAt(i);
child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight();
if (h & hight) hight =
heightMeasureSpec = MeasureSpec.makeMeasureSpec(hight, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
162.选择项有RadioGroup和另外一个button组成
点击button的时候,清除radiogroup中选中的radiobutton。调用radiogroup的clearCheck方法即可
163.gridview
columnnum。上传照片
9.png Error:Must have one-pixel frame that is either transparent or white. -xxx/app/src/main/res/drawable-xhdpi/icon_addpic_focused.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
解决方法如下 this is the problem with latest adt that is 20.0.3. you can instead rename the *.9.png to *.png and start working. i think this is the bug with the adt only, since for 18.0.0 version adt it doesnt prompts for this type of error and works fine
IntentRecieverLeakedException, Are you missing a call to unregisterReceiver() ? in android
注册广播接收者有两种方式,一种在清单文件中注册。这个是长期有效的。另外一种是。在activity中注册,这种注册的生命周期在actity的生命周期内,还有第二种注册不要registerReceiver必须要和unregisterReceiver配套使用,否则会出现上述问题。
http://stackoverflow.com/questions/9078390/intentrecieverleakedexception-are-you-missing-a-call-to-unregisterreceiver
SVN Ignore files in Android Studio&
There was nothing in the repository, until I did Share Directory on the project. It then created the folder for the project in the repository. I entered the following in Settings|Version Control|Subversion:
File:.idea/workspace.xml
File: .gradle
Directory: build/
Mask: *.iws
Directory: .idea/libraries/
Directory: app/build/
File: local.properties
下面的更彻底
local.properties
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
Android Studio fails to debug with error org.gradle.process.internal.ExecException Error:Execution failed for task ':app:dexDebug'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_11\bin\java.exe'' finished with non-zero exit value 2
169.Eclipse混淆文件导入Android Studio Gradle编译报input jar file is specified twice&原因是build.gradle文件配置了
dependencies { compile fileTree(include: '*.jar', dir: 'libs')
里面已经添加过jar包,混淆文件proguard-rules.pro里面又加了句-libraryjars libs/***.jar,将-libraryjars libs/***.jar 前面用#号注释或者直接删掉即可。
170.key.java
android-stuido 中错误提示:“非法字符: \65279”&
对设置为“UTF-8”编码的文件在修改后保存时自动加入了UTF-8文件签名,即BOM(将文件以十六进制形式查看,可见文件首部为“EF BB BF”).
解决方法: 使用Notepad++去除BOM 【在IntelliJ IDEA 12使用,可成功】
具体方法:先设置以UTF-8无ROM方式编码,然后打开文件,另存此文件,覆盖掉原文件。
设置方法:格式-&以UTF-8无ROM方式编码。
171.LocalBroadcastManager
解决fragment中通信的问题
最近在开发平板项目,完全是fragmentactivity+fragment的结构。看起来似乎简单,但是和以前不同的是,业务逻辑非常复杂,多处的非常规跳转,
fragment之间的数据交换,一处更新多处更新等操作,有时玩起来都心塞。项目背景介绍完毕。
现在有这样一个场景,项目需求是,后台可配置功能,也就是说app端所有的功能都是后台配置上去的动态生成,对应的功能界面如下图。
能够完成在应用内的广播发送,而且比全局广播更具优势:
1).广播只会在你的应用内发送,所以无需担心数据泄露,更加安全。
2).其他应用无法发广播给你的应用,所以也不用担心你的应用有别人可以利用的安全漏洞
3).相比较全局广播,它不需要发送给整个系统,所以更加高效。
2. 使用方式
广播注册:
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(getActivity());
IntentFilter filter = new IntentFilter();
filter.addAction(ACTION);
myBroadcastReciver = new MyBroadcastReciver();
localBroadcastManager.registerReceiver(myBroadcastReciver, filter);
广播发送:
Intent intent = new Inten();
intent.setAction(SaleLeftFragment.ACTION);
intent.putExtra(TAG, data);
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(intent);
3.使用注意
在使用的时候,请关注以下几点:
1).LocalBroadcastManager注册广播只能通过代码注册的方式。
2).LocalBroadcastManager注册广播后,一定要记得取消监听。
3).重点的重点,使用LocalBroadcastManager注册的广播,您在发送广播的时候务必使用
Fragment间的广播消息接收
广播注册,可以写在Activity(onCreate),也可以写在Fragment(onActivityCreated)里。
LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(getActivity());
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(&android.intent.action.CART_BROADCAST&);//建议把它写一个公共的变量,这里方便阅读就不写了。
BroadcastReceiver mItemViewListClickReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent){
System.out.println(&OK&);
broadcastManager.registerReceiver(mItemViewListClickReceiver, intentFilter);
Intent intent = new Intent(&android.intent.action.CART_BROADCAST&);
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(intent);
can I] Change the password, so I can share it with others and let them sign
Using keytool:
keytool -storepasswd -keystore /path/to/keystore
Enter keystore password:
New keystore password:
new-password
Re-enter new keystore password:
new-password
to create a release signed apk file using Gradle?
activity found to handle intent action.dial
Uri.parse(&tel:& + a1) Android 调用系统Email --多附件 Intent.ACTION_SENDTO 无附件的发送 Intent.ACTION_SEND 带附件的发送 Intent.ACTION_SEND_MULTIPLE 带有多附件的发送 Intent data=new Intent(Intent.ACTION_SENDTO);
data.setData(Uri.parse(&mailto:&));
data.putExtra(Intent.EXTRA_SUBJECT, &这是标题&);
data.putExtra(Intent.EXTRA_TEXT, &这是内容&);
startActivity(data);
中有用的字符实体
注释:实体名称对大小写敏感! 显示结果 描述 实体名称 实体编号 空格 & & & 小于号 & &
大于号 & & & 和号 & & & 引号 & & ' 撇号 ' (IE不支持) ' ¢ 分 ? ? ? 镑 ? ? ? 日圆 ? ? EUR 欧元 EUR EUR § 小节 § § (C) 版权 (C) (C) (R) 注册商标 (R) (R) (TM) 商标 (TM) (TM) × 乘号 × × ÷ 除号 ÷ ÷
176.Generating
signed release APK using Gradle&
How to create a release signed apk file using Gradle?
http://stackoverflow.com/questions//how-to-create-a-release-signed-apk-file-using-gradle
compileSdkVersion 17
signingConfigs {
releaseSigning {
storeFile file(System.getenv(&ANDROID_KEYSTORE&))
storePassword System.console().readLine(&\nStore password: &)
keyAlias System.getenv(&ANDROID_KEYALIAS&)
keyPassword System.console().readLine(&Key password: &)
buildTypes {
signingConfig signingConfigs.releaseSigning
Now, you can generate the signed and zipaligned release APK using the Gradle task:
./gradlew assembleRelease
177.Android
Studio: How to use Monitor(DDMS) tool to debug application step by step?
Go to &Tools & Android & Android Device Monitor& in v0.8.6. That will pull up the DDMS eclipse perspective.
dump viewhierarchy for ui automator 可以查看应用的布局,当对某个app布局感兴趣时,可以采用此种方式查看此app的布局,相当于布局反编译功能。
如何通过java代码设置textview字体加粗。
textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));//加粗
179.qickreturn
swiperefreshlayout
viewpager中彻底性动态添加、删除Fragment&
viewpager在加载当前页的时候已经将pager页左右页的内容加载进内存里了,这样才保证了viewpager左右滑动的时候的流畅性;
为了解决彻底删除fragment,我们要做的是:
1.将FragmentPagerAdapter 替换成FragmentStatePagerAdapter,因为前者只要加载过,fragment中的视图就一直在内存中,在这个过程中无论你怎么刷新,清除都是无用的,直至程序退出; 后者 可以满足我们的需求。
2.我们可以重写Adapter的方法--getItemPosition(),让其返回PagerAdapter.POSITION_NONE即可;
Uri.encode
182.omniplan
183.androidstudio
svn delete
184.GreenDao
query OR within AND
http://stackoverflow.com/questions//greendao-query-or-within-and
QueryBuilder.and() and QueryBuilder.or() are used to combine WhereConditions. The resulting WhereConditions have to be used inside QueryBuilder.where() (which will combine the conditions using AND) or QueryBuilder.whereOr().
185.greendao
删除某个对象
&1.public void deleteCityInfo(int cityId) 2.{ 3.QueryBuilder qb = cityInfoDao.queryBuilder();
4.DeleteQuery bd = qb.where(Properties.CityId.eq(cityId)).buildDelete(); 5.bd.executeDeleteWithoutDetachingEntities(); 6.}
androidstudio ctrl+shift+t 模糊搜索类
ctrl+o 本文件的函数
ctrl+g
全局搜索类 变量 函数
alter+insert 快速插入getset等
Ctrl+Shift+F7 可以高亮当前元素在当前文件中的使用
Android Studio 如何提示函数用法?
先选中,然后按F2
188.Fragment的通信有关问题,
新建Fragment为何不要在构造方法中传递参数
在理解反射的时候,不得不说一下内存。 先理解一下JVM的三个区:堆区,栈区,和方法去(静态区)。 堆区:存放所有的对象,每个对象都有一个与其对应的class信息。在JVM中只有一个堆区,堆区被所有的线程共享。 栈区:存放所有基础数据类型的对象和所有自定义对象的引用,每个线程包含一个栈区。每个栈区中的数据都是私有的,其他栈不能访问。 栈分为三部分: 基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。 方法区:即静态区,被所有的线程共享。方法区包含所有的class和static变量。它们都是唯一的。
在启动一个java虚拟机时,虚拟机要加载你程序里所用到的类 ,这个进程会首先跑到jdk中(在jdk的jre/lib/ext文件夹里找那些jar文件),如果没有找到,会去classpath里设置的路径去找。
在找到要执行的类时:
1.首先将找到的类的信息加载到运行时数据区的方法区。这个过程叫做类的加载。所以一下static类型的在类的加载过程中就已经放到了方法区。所以不用实例化就能用一个static类型的方法。
2.加载完成后,在new一个类时,首先就是去方法区看看有没有这个类的信息。如果没有这个类的信息,先装载这个类。then,加载完成后,会在堆区为new的这个类分配内存,有了内存就有了实例,而这个实例指向的是方法区的该类信息。其实就是存放了在方法区的地址。而反射就是利用了这一点。
Genymotion Crash after a few minutes
E/eglCodecCommon(2163): writeFully: failed: Broken pipe
It's not really caused by your application, so don't worry.
It often happens when you computer goes in sleep mode and when you come back Genymotion will throw this exception (it happens to me very often).
In your specific case sounds like the device goes in sleep mode so a way to fix it is simply to enable &Always stay awake& in developers options.
A WebView method was called on thread 'Timer-1'. All WebView methods must be called on the UI thread. Future versions of WebView may not support use on other threads.
java.lang.IllegalStateException: Timer was canceled at java.util.Timer.scheduleImpl(Timer.java:561) at java.util.Timer.schedule(Timer.java:481) at com.jetsun.hbfc.activity.base.CommonWebViewActivity$3.onPageStarted(CommonWebViewActivity.java:178)
Webview reload page get force close
Change your TimerTask to the following:
new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { public void run() { wvNovaMenzaCammera.reload(); } });
Timer与TimerTask的

我要回帖

更多关于 矢量网络分析仪 原理 的文章

 

随机推荐