Android个人学习小结2016.5

原创 2016年06月01日 00:13:56

以下内容仅为个人初学Android小结及生活,不太适合其他人看。

1、 让图片子元素水平 垂直居中

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center|center_horizontal|center_vertical" >

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/ic_launcher" />
</LinearLayout>

2、对于部分老版本系统,非button控件,若使用onClick方法,需要同时设置以下两个才能点击,否则就用其他两种点击事件方法
android:clickable=”true”
android:onClick=”closebtn”

3、

<activity
            android:name="org.activity"
            android:launchMode="singleTask"
            android:screenOrientation="nosensor"
            android:theme="@style/NoTitle" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
</activity>

4、权限访问修饰符
public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。

包外 子类 包内 类内
public yes yes yes yes
protected no yes yes yes
default no no yes yes
private no no no yes

5、ASO(App Store Optimization)应用商店优化

6、酷传 一键发布到各安卓市场

7、使用说明的图片, 更新后首次登录展示图,展示大版本更新内容 或者广告的

8、

int a=1;  
if(a==1){System.out.println("1");}  
if(a==2){System.out.println("2");}  
if(a==3){System.out.println("3");}  

if(a==1){System.out.println("1");}  
else if(a==2){System.out.println("2");}  
else if(a==3){System.out.println("3");}  
else if(a==4){System.out.println("4");}  

多个if 不管你前面ture与否后面的都执行
else if 如果前面的有一个成立 那么后面的都不执行

9、Hotfix是针对某一个具体的系统漏洞或安全问题而发布的专门解决该漏洞或安全问题的小程序,通常称为修补程序。

10、改包名时要把各种文件读取/存储 下载目录改过来,比如自动登录时检测的

11、设计师网站dribbble 需要邀请才能上传与评论,否则注册账号只能查看内容

12、RGB分别占两个位,十六进制0123~DEF,一共16*16-1=256-1=255 0~255一共256个, 组成最后的#000000
如0 255 255 对应#00FFFF

13、合成声音,合成视频。合成图片,图标处理。

14、RelativeLayout下
android:layout_alignParentTop=”true” //贴近顶部
android:layout_alignParentBottom=”true” //贴近底部

15、UI只做一个src小图,background用色块画一下就好,参考支付宝的

16、软硬件结合,学单片机的东西

17、上传APP前要验证:
a、修改manifest中的版本号数据
b、加同一个签名,应用加固
c、修改服务器上的version文件
d、上传后自己手机测试一遍

18、发布前提:通过单元测试;通过功能测试;通过安全测试;
安全测试 目前常做的测试类别

  • 用户隐私 检查是否在本地保存用户密码,无论加密与否 检查敏感的隐私信息,如聊天记录、关系链、银行账号等是否进行加密
    检查是否将系统文件、配置文件明文保存在外部设备上 部分需要存储到外部设备的信息,需要每次使用前都判断信息是否被篡改
  • 文件权限
    检查App所在的目录,其权限必须为不允许其他组成员读写
  • 网络通讯
    检查敏感信息在网络传输中是否做了加密处理,重要数据要采用TLS或者SSL
  • 运行时解释保护
    对于嵌有解释器的软件,检查是否存在XSS、SQL注入漏洞
    使用webiew的App,检查是否存在URL欺骗漏洞
  • Android组件权限保护
    禁止App内部组件被任意第三方程序调用。
    若需要供外部调用的组件,应检查对调用者是否做了签名限制
  • 升级
    检查是否对升级包的完整性、合法性进行了校验,避免升级包被劫持
  • 3rd库
    如果使用了第三方库,需要跟进第三方库的更新

APP端的安全问题,一般是反编译和本地存储漏洞。
更多的侧重在服务端API的设计,例如http请求默认是明文的,如果安全验证和加密机制很烂,通过网络嗅探扫描,很容易被猜到和模拟请求,也可能被注入。
当然,如果是web app ,则和web应用类似,存在跨站脚本等等

19、Error:Failed to complete Gradle execution. Cause: unknown
AndroidStudio若编译失败,看下build.gradle
修改
dependencies {
classpath ‘com.android.tools.build:gradle:1.3.0’
}
或改为其他gradle版本试试

20、

//最简单的spinner
<LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:entries="@array/array1"
          />
</LinearLayout>
    //android:entries="@array/array1"表示Spinner的数据集合是从资源数组array1中获取的,array1数组资源定义在values/arrays.xml中:


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="array1">
        <item>java</item>
        <item>swift </item>
        <item>javascript</item>
        <item>html</item>
        <item>c++</item>
    </string-array>
</resources>

21、git rm -rf –cached 删除缓存目录,解决gitignore无效的问题。 先创建touch .gitignore commit提交.gitignore, utf8 无bom添加目录到gitignore

22、GsonFormat
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

23、若AndroidStudio上的logcat时间不对,其实这是你虚拟机上的时间,去改虚拟机上的就行了

24、

//规范点击事件
one = (Spinner) findViewById(R.id.one);
two = (Spinner) findViewById(R.id.two);
one.setOnItemSelectedListener(this);
two.setOnItemSelectedListener(this);
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (parent.getId()){
case R.id.spin_one:
       Toast.makeText(mContext,"您的是:" + parent.getItemAtPosition(position).toString(),
       Toast.LENGTH_SHORT).show();
break;
case R.id.spin_two:
       TextView txt_name = (TextView) view.findViewById(R.id.txt_name);
       Toast.makeText(mContext,"您选择的是:" + txt_name.getText().toString(),
       Toast.LENGTH_SHORT).show();
break;
    }
}

25、SYN(synchronous):TCP/IP建立连接时使用的握手信号 同步
ACK(Acknowledgement):确认字符,确认发来的数据已经接受无误 确认

26、Http的几种请求方式

实际开发中我们用得较多的方式是Get和Post,但是实际开发可能还会用到其他请求方式,比如PUT,
Get:请求获取Request-URI所标识的资源
POST:在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应信息报头
PUT:请求服务器存储一个资源,并用Request-URI作为其标识
DELETE:请求服务器删除Request-URI所标识的资源
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT:保留将来使用
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项

27、当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。 原理是怎样的呢?
实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器, 浏览器解析Response中的HTML,这样我们就看到了网页

28、程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上。

29、Java的异常处理是通过5个关键字来实现的:try,catch,throw,throws,finally。JB的在线帮助中对这几个关键字是这样解释的:
Throws: Lists the exceptions a method could throw.
Throw: Transfers control of the method to the exception handler.
Try: Opening exception-handling statement.
Catch: Captures the exception.
Finally: Runs its code before terminating the program.

30、注意 page,x,y都要是double类型
page=Math.ceil(x/y); 向上取商,如101/10=11

page=Math.floor(x/y);向下取商,如101/10=10

31、txtShow.setBackground(”#000”);

32、public class MyView extends Activity {
String url;
ImageView imageView; //这里先声明,而不要赋值,否则会奔溃
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView=(ImageView)findViewById(R.id.imageView); //这里再赋值啊
url=”http://img1.3lian.com/img2011/w1/106/85/42.jpg”;
Picasso.with(MainActivity.this).load(url).into(imageView);
}
}

33、

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
TextView typetext = (TextView)arg1.findViewById(R.id.logitem_opentype);

取出listView对应位置arg1的 相应id的值

34、int 转化成String:
int i=10;
String str=Integer.toString(i);
double 转化成String:
double d=10.0;
String str=Double.toString(d);
String 转化成double:
String str=”123456”;
double d=Double.valueOf(str).doubleValue();

35、onTouchEvent case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_MOVE:

36、

public boolean onKeyDown(int keyCode, KeyEvent event) {
             if (keyCode == KeyEvent.KEYCODE_BACK
                      && event.getRepeatCount() == 0) {
                 //do something...
                  return true;
              }
              return super.onKeyDown(keyCode, event);
          }

37、Tomcat和JBoss有什么区别?Spring、Struct、Hibernate

38、dreamweaver ,fireworks

39、请注意,JavaScript严格区分大小写,如果弄错了大小写,程序将报错或者运行不正常。

40、AJAX不是JavaScript的规范,它只是一个哥们“发明”的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求。

41、SVG 指可伸缩矢量图形 (Scalable Vector Graphics)

42、ie 主页被劫持,先在浏览器改一下看行不行。 若还不行,则需右键快捷方式属性,删除后面的删除就可以了hao.qquu8.com 然后把它生成的快捷图标删除就可以了。
可能还要删除原来的快捷方式,重建一个

43、java 大小写字符串转换
例:
String str = “aaaaaBBcccc”;
String Upstr = str.toUpperCase();
String Lowstr = str.toLowerCase();

Upstr 的值是 “AAAAABBCCCC”
Lowstr 的值是 “aaaaabbcccc”

44、『我从不畏惧一个知道一万种踢法的人,但是我害怕一个把一种踢法练习过一万次的对手。』

45、对于无法删除的文件,如Ubuntu残留在win10的文件,可右键选择火绒-解除占用,再粉碎操作

版权声明:本文为博主原创文章,未经博主允许不得转载。

matlab小结

本组成员郑志远,张苓琬,于鹏朔。本周小组初步计划完成数组及多维数组方面的所有学习,最终学习到数组最基本部分,离预想环节有一点距离。...
  • zhengzhiyuan14
  • zhengzhiyuan14
  • 2015年10月19日 18:27
  • 184

个人阶段性学习总结

实习报告总结   1.struts+spring+hibernate框架学习及使用:           a.struts2主要负责接收网页中表单提交的数据,然后通过 Action 进行处理,再 Fo...
  • JY_He
  • JY_He
  • 2016年06月30日 11:34
  • 1008

学习《新党章》心得体会

导读: 本文转自 http://blog.cersp.com/userlog15/155044/archives/2007/685650.sh党章是党的全国代表大会通过党的最基本性的纲领文件,代表了全...
  • tjhgltt
  • tjhgltt
  • 2008年04月18日 13:27
  • 12684

2015.7个人反思小结以及后续规划

2015.7个人反思小结以及后续规划标签(空格分隔): 反思小结缘由: 总觉得有必要为自己写一篇小结,有些东西会跟随着时光慢慢被淡忘,写小结感觉和拍照一样,都是用来 记录自己曾经的点点滴滴,...
  • zpj779878443
  • zpj779878443
  • 2015年07月18日 21:39
  • 8427

Linux学习总结(七)

Linux学习总结(七)多线程异步管理——信号线程并没有自己完全独立的异步信号管理机制,因此需要依赖于所在的进程,每个线程仅仅只能管理自己私有的信号屏蔽集合。因此信号操作时具有一下操作 (1)每个线程...
  • jkhero
  • jkhero
  • 2017年06月04日 19:54
  • 556

Android Studio学习小结

今天在移交项目的时候编译Studio报以下错误:这里给出一个可能的原因是因为Android的方法数目不够,添加以下代码试试: multiDexEnabled true,希望能解决,谢谢...
  • yumaoda
  • yumaoda
  • 2017年03月08日 09:39
  • 115

我的Android Studio 优化之路

修改keymap修改常用的快捷键 代码补全(Eclipse: ALT+/) Android Studio中默认用的是Ctrl+Space, 这跟输入法切换冲突,找到Keymap->Main Men...
  • tanranran
  • tanranran
  • 2015年07月03日 14:03
  • 1308

App Inventor for Android 使用总结

昨日我们报道了Google App Inventor for Android,它是一个基于网页的开发环境,即使是没有开发背景的人也能通过他轻松创建Android应用程序。这个产品已经测试了一年之久了,...
  • zbl1433977388
  • zbl1433977388
  • 2014年05月26日 12:59
  • 243

来自知乎的Android学习总结

转自知乎: http://www.zhihu.com/question/26417244 之前写了一篇博客 Android学习之路 被疯狂转发,带起了一阵学习Android的大风,我不晓得具体影...
  • Bob1993_Dev
  • Bob1993_Dev
  • 2014年12月24日 14:42
  • 2842

Asp.net学习总结

Asp.net北大青鸟。虽然是在讲,如何用asp.net控件。其实一直都是在传输一种思想。     讲服务器端 和 客户端 相分离。在开发的过程中,要时刻知道,客户端 与 服务端 在什么时候交互。对不...
  • zc474235918
  • zc474235918
  • 2014年08月17日 15:33
  • 1546
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android个人学习小结2016.5
举报原因:
原因补充:

(最多只允许输入30个字)