Gahing's blog Gahing's blog
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Gahing / francecil

To be best
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Android

    • 动态化技术

    • 应用开发

      • Android开发技巧
        • 单步调试
        • 高级调试
          • 跨断点
          • 设置变量值
          • 查看断点View BreakPoints Ctrl+Shift_F8
        • Log
        • SVN 使用
        • SVN 设置过滤
        • Mark Resolved
        • 版本控制自动add 可以再setting里设置
        • 获取当前应用的方向
        • 禁止状态栏下拉和导航栏上拉
        • so包和Android系统
        • Inflate使用
      • Android模拟触控解决方案
      • Android监听屏幕旋转
      • adb控制avd
    • 系统原理

    • 语言基础

    • 逆向技术

  • iOS

  • 客户端
  • Android
  • 应用开发
gahing
2016/04/13
目录

Android开发技巧

# 单步调试

F6 Step Over 程序向下执行一行(如果当前行有方法调用,不进入方法体,直接到下一行)

F5 Step Into 程序向下执行一行(如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)会进入Log方法,算是bug吗?

Alt+Shift+F7 Force Step Into 任何方法都会进入

F7 Step Out 跳出当前方法,返回到该方法被调用处的下一行语句。tips:循环代码段,执行Step Out将跳过一次循环.

Ctrl + R Run to Cursor 直接到光标处

Drop Frame 返回当前方法的调用处重新执行,上下文变量也恢复如初。未测试过..

# 高级调试

# 跨断点

点击右三角按钮(Resume Program) F8 ,进入下一断点。(两断点间代码已执行完毕

注:断点打在循环上的话,下一断点还是循环体

# 设置变量值

变量右键 set value

# 查看断点View BreakPoints Ctrl+Shift_F8

两个重叠圈的按钮,弹出一个界面.

可以设置条件断点 满足条件时暂停程序运行.

该做法更灵活,定位快。

# Log

logt : TAG logm : 带方法、参数的Log.d logd : 带方法的Log.d

##AS 项目结构

*.iml文件 as项目结构的配置文件

project :demo 与此同时它也是一个跟module 所以在根路径下点make module 会有demo和子module

module : 默认app 可添加多个,一般一个主工程 其他的为sdk

# SVN 使用

取消与SVN的关联/找不到Share Project(Subversion)

在Project模式下有个.idea文件夹,找到vcs.xml文件,把里面的vcs="svn"改为vcs=""即可。

# SVN 设置过滤

方法一、在项目的.idea/workspace.xml的文件里设置

<?xml version="1.0" encoding="UTF-8"?>
<project>    
	<component name="ChangeListManager">    
 	   ...    
	<ignored path=".gradle/" />     
	<ignored path=".idea/" />     
	<ignored path="gradle/" />   
	<ignored path="项目名/build/" />    
	<ignored path="gradlew" />    
	<ignored path="gradlew.bat" />    
	<ignored mask="*.iml" />     
	<ignored path="local.properties" />    
	<ignored path="build/" />   
	<ignored mask="*.apk" />  
	</component>    
	...    
</project>  

白色主题的:黄色表示被过滤 绿色为未过滤

# Mark Resolved

出现冲突后,我方不能提交,此时只要将冲突文件标记解决冲突后,即可提交

# 版本控制自动add 可以再setting里设置

目前发现commit就直接push到远端svn了 而不是 等希望push commits的时候再push

待解决

# 获取当前应用的方向

开个service,定时去获取或按需获取

int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
                    int screenHeight = getWindowManager().getDefaultDisplay().getHeight();
                    Log.d("ori", "now the screen width is :" + screenWidth + "screen height is:" + screenHeight);
                    if(screenWidth>screenHeight){
                        Log.d("ori", "横屏 ");
                    }else{
                        Log.d("ori", "竖屏 ");
                    }

# 禁止状态栏下拉和导航栏上拉

见 Android模拟触控解决方案.md

# so包和Android系统

http://www.jianshu.com/p/cb05698a1968

# Inflate使用

http://www.sxt.cn/info-9373-u-14124.html

编辑 (opens new window)
上次更新: 2024/09/01, 23:56:56
热修原理
Android模拟触控解决方案

← 热修原理 Android模拟触控解决方案→

最近更新
01
浅谈代码质量与量化指标
08-27
02
快速理解 JS 装饰器
08-26
03
Vue 项目中的 data-v-xxx 是怎么生成的
09-19
更多文章>
Theme by Vdoing | Copyright © 2016-2024 Gahing | 闽ICP备19024221号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式