记录的Android开发过程中遇到的问题。 - Go语言中文社区

记录的Android开发过程中遇到的问题。


180508  更新

  网上下载demo 本地studio版本和demo版本不一致处理方式

  修改两处

 1 项目的build.gradle 里面classpath


2修改项目目录下 gradle-->wrapper-->gradle-wrapper.properties文件的
distributionUrl地址
然后 clean build  rebuild  即可
1.在一个XML中能否使用同一个包括多次

http://www.apkbus.com/android-104152-1-1.html

安卓中包括标签的使用

http://blog.csdn.net/wangljgood/article/details/6556175

android按钮在中底部居中
把button外的权重设为1.0
3.按钮形状
http://www.cnblogs.com/gzggyy/archive/2013/05/17/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/0102/22/6541311_257754535.shtml
http://blog.csdn.net/aminfo/article/details/7847761
http://blog.csdn.net/xsl1990/article/details/19125193
http://www.cnblogs.com/bavariama/archive/2013/01/29/2881225.html
http://www.oschina.net/question/97118_34523
http://www.eoeandroid.com/thread-67329-1-1.html
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如何获取时间差?

使用错误解决方法之前,请务必使用ImagingLoader进行配置

imageLoader.init(ImageLoaderConfiguration.createDefault(MainActivity.this));

8.java.lang.StackOverflowError

StackOverflow这个问题一般是你的程序里头可能是有死循环或递归调用所产生的

9.java.lang.ClassCastException:android.app.Application不能转换为MyApplication问题

出现这个异常的原因是在项目中添加了新应用程序类(public class Application extends android.app.Application)之后,没有在manifest.xml中添加该类的声明,所以编译器抛出异常:java.lang。 ClassCastException:android.app.Application无法转换为android_serialport_api.sample.Application

解决方法,在manifest.xml中添加:[html]查看plaincopy

<application  
 android:name="xxx.MyApplication">  
10. event.getAction();
11.在依赖列表中找到了android-support-v4和android-support-v13。
12.如何关联android-support-v4源码
问题:使用viewpager或者fragmentActivity等一些v4包下的类,当我们按F3时无法查看到源码,这个时候就需要我们关联该源码,该源码的关联与android源码的关联不一样。

解决办法:

1、首先在工程的libs目录下创建一个配置文件:android-support-v4.jar.properties(建议这样)

2、查找自己安装的SDK的目录下的android-support-v4的src源码地址

本人的为:D:eclipseandroid-sdkextrasandroidcompatibilityv4src

3、编辑android-support-v4.jar.properties文件为:(注意是双斜杠)

src = D:\eclipse\android-sdk\extras\android\compatibility\v4\src

4、关闭自己的工程后再打开,此时进去选择ViewPager后F3就能看到源码了。

5、恭喜:android-support-v4 源码已经成功的关联上。

还有种方式,http://blog.csdn.net/leon90dm/article/details/8521939,没试。

上面是月食中的做法,在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/

谷歌,被和谐后,通过VPN或者访问上述镜像路径。

15.fragment Andriod开发技巧 - Fragment的懒加载

一个活动里面可能会以viewpager(或其他容器)与多个片段来组合使用,而如果每个片段都需要去加载数据,或从本地加载,或从网络加载,那么在这个活动刚创建的时候就变成需要初始化大量资源。这样的结果,我们当然不会满意。那么,能不能做到当切换到这个片段的时候,它才去初始化呢?

答案就在片段里的setUserVisibleHint方法这个里  http://blog.csdn.net/maosidiaoxian/article/details/38300627

结合片段的隐藏和显示使用。

让多个片段切换时不重新实例化

http://www.yrom.net/blog/2013/03/10/fragment-switch-not-restart/

关于Android的GridView添加headerView

grid-with-header-list-adapter StickyGridHeaders /  http://www.eoeandroid.com/blog-696650-48907.html

18.Eclipse设置不格式化注释
Eclipse设置不格式化注释

  注意中写点带格式的文字,格式后全乱了,解决办法如下:Windows - > Prefer - > java - >代码样式 - >格式化 - >编辑 - >注释取消勾选“启用Javadoc注释格式”。

19.android-超拉至刷新
20.Linux动态GIF图的录制
byzanz  
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无线循环

http://www.cnblogs.com/xinye/archive/2013/06/09/3129140.html

23.public void onPageScrollStateChanged(int arg0)
此方法是在状态改变的时候调用,其中arg0这个参数有三种状态(0,1,2)。arg0 ==1的时辰默示正在滑动,arg0==2的时辰默示滑动完毕了,arg0==0的时辰默示什么都没做。

当页面开始滑动的时候,三种状态的变化顺序为(1,2,0)
24。

在eclipse.ini文件中加入-Dorg.eclipse.swt.browser.DefaultType = mozilla然后clean一下就OK了执行clean命令

26.viewpager实现画廊(一屏多个片段)效果
27.svn命令

通过指令添加文件,每次都到对应文件夹svn add。这样如果需要添加的文件不在一个文件夹时会很麻烦,通过下面的--force可以方便的添加$ svn add * --force  http: //developer.51cto.com/art/201005/201633.htm

当然现在studio集成乐svn git等代码管理工具,很方便,可以直接使用。

阵列常数只能在初始化器中使用
int CC [] ={1,2,3};   数组定义并附初始值的时候,数组的长度就定了,长度是3
 而且数组重新赋值不能再像定义的时候那样
而要一个一个地更改
CC[0]=1;
CC[1]=2;
CC[2]=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属性

 

<GridView
	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"/>

<ListView
	android:listSelector="@android:color/transparent"
	android:layout_height="match_parent"
	android:layout_width="match_parent"/>

当然也可以定制化自己想要的效果。

推荐使用方法二,解耦逻辑代码与布局文件。 

另外listview还有两个基础问题问题1:

	       listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来。

	解决办法:

	      xml中: android:scrollingCache="false"  或者 android:cacheColorHint="#00000000"

	     代码中: setScrollingCacheEnabled(false)  或者 setCacheColorHint(0)  或者setCacheColorHint(Color.TRANSPARENT);

	问题2:

	    listview的上边和下边有黑色的阴影。

	解决办法:

	   xml中: android:fadingEdge="none"

	  代码中:setFadingEdgeLength(0);
32.ScrollView只支持一个子项,报告ScrollView只能托管一个直接的孩子
解决办法:

在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中<整数,对象>

http://blog.csdn.net/haukey/article/details/8200404

36.代码规范

http://liuzhichao.com/p/1781.html#more-1781

//禁止父母拦截,以防万一
                    ViewParent parent = getParent();
                    if (parent != null) {
                        parent.requestDisallowInterceptTouchEvent(true);
                    }
38.linerlayout布局,如何把一个视图指定父视图的底部
在纯属布局中,将除最底部以外的的view都设置weight为1就可以了。
39岁的左侧加拉

如果只是在左边或者右边加图片可以用EditeView的一个属性; android:drawableLeft在文本的左边输出一个drawable如果在中间或者随意加图片的话,需要你重写EditView来实现图文混排!

40.加密算法

41.01-07 15:34:23.160:E / AndroidRuntime(1932):引起的:java.lang.UnsatisfiedLinkError:无法加载AES:findLibrary返回null

01-07 15:37:43.240:E / AndroidRuntime(2537):java.lang.UnsatisfiedLinkError:未找到本机方法:com.jetsun.hbfc.core.AESCoder.decryptCNew :()Ljava / lang / String;

01-07 15:37:43.230:D / dalvikvm(2537):没有JNI_OnLoad在/data/data/com.jetsun.hbfc/lib/libAES.so中找到0x4160abe0,跳过init

01-07 15:37:43.230:W / dalvikvm(2537):没有为本机Lcom / jetsun / hbfc / core / AESCoder找到实现; .decryptCNew :()Ljava / lang / String;

返回使整数的指针没有转换[默认启用]

01-07 17:51:47.520:D / dalvikvm(12438):没有JNI_OnLoad在/data/data/com.jetsun.hbfc/lib/libAES.so中找到0x41601a80,跳过init 01-07 17:51:47.525:I / JNIMsg(12438):jclass == NULL 01-07 17:51:47.525:I / JNIMsg(12438):第1步:jclass开始好了!01-07 17:51:47.525:I / JNIMsg(12438):encryptC == NULL 01-07 17:51:47.525:I / JNIMsg(12438):步骤2:decryptC new failed 01-07 17:51:47.525 :I / JNIMsg(12438):步骤2:decryptC方法准备好了!

41.jni基础

android __android_log_print打印函数__源代码  http://blog.csdn.net/sno_guo/article/details/8143050  JNI字段描述符“([Ljava / lang / String;)V”  http://fgsink.blog.163 .com / blog / static / 16716997020124310169911 /  jni函数讲解http://blog.csdn.net/caimouse/article/category/661872/2  基于Android NDK的学习之旅----- C调用Java http:// www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.html  没有JNI_OnLoad发现在... skipping init http://stackoverflow.com/questions/11798054/no-jni-onload-found-in-skipping- init  eclipse ndk配置详细描述http://www.cnblogs.com/chenjiajin/archive/2012/04/12/2444188.html  基于Android NDK的学习之旅

汇总ndk精华

http://www.cnblogs.com/chenjiajin/archive/2012/04/12/2444188.html http://www.cnblogs.com/luxiaofeng54/archive/2011/08/17/2142000.html http:// blog.csdn.net/caimouse/article/details/6853795 http://fgsink.blog.163.com/blog/#m=0&t=1&c=fks_084071081085086066085080094095085080086066082095095068084

加密

有固定的密钥的AES加密http://fenglingcorp.iteye.com/blog/586600  android Rsa算法加密  明文--->公钥--->密文密文 - >密钥 - >明文  http://blog.sina.com.cn/s/blog_6568e7880100x8r9.html  java加密与解密的艺术作者http://snowolf.iteye.com/blog/379860  Android AES加密算法及其实现http:// blog .csdn.net / randyjiawenjie / article / details / 6587986  AES加密解密Android版http://www.cnblogs.com/carlosk/archive/2012/05/18/2507975.html

加密方式AES加密模式AES / CBC / PKCS5Padding加密向量iv secretkey秘密编码方式utf-8

43.proguard的使用

代码混淆时,不混淆的部分。

44.socket

Socket简单用法  http://www.cnblogs.com/harrisonpc/archive/2011/03/31/2001565.html  即时通讯
基于xmpp openfire smack开发之Openfire介绍和部署[1]  http://blog.csdn.net / shimiso / article / details / 8816558  Openfire + Spark聊天演示  http://www.apkbus.com/android-69413-1-1.html openfire  的Android客户端实现http://download.csdn.net/detail/ sky_monkey / 5820879#评论

45.音频编解码

FFmpeg的安卓的平台移植-篇compile-  http://blog.csdn.net/gobitan/article/details/22750719#reply

46.f5负载均衡
掌上指路标 - APP架构与导航设计  http://www.yixieshi.com/ucd/13188.html

 APP导航设计的步骤主要为以下三步:

  APP框架整理:信息架构或任务分析

  框架层级判断:扁平vs树状

  导航具体表现形式:控制形式和摆放位置

48.移动应用架构设计

http://blog.csdn.net/uxyheaven/article/details/38041091  移动App设计之分层架构+ MVC http://www.cnblogs.com/Logen/archive/2012/11/08/2760638.html

安德森精品开源项目

http://blog.csdn.net/caesardadi/article/details/21091645

50.使用GDB调试JNI代码

Android NDK应用原理  http://shihongzhi.com/ndk/  NDK开发指南--- Android NDK概览http://hualang.iteye.com/blog/1135105

导致无法使用“导致无限使用”英文

解决方法:终端sogou-qimpanel&

52.layout_alignBaseline的作用
53.android:
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/z2278734400/article/details/78113881
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢