在Android工程里编译自己的应用pdf
Android开发技术文档
Android 开发最佳实践从Futurice公司Android开发者中学到的经验。
遵循以下准则,避免重复发明轮子。
若您对开发iOS或Windows Phone 有兴趣,请看iOS Good Practices和Windows client Good Practices这两篇文章。
摘要•使用 Gradle 和它推荐的工程结构•把密码和敏感数据放在gradle.properties•不要自己写 HTTP 客户端,使用Volley或OkHttp库•使用Jackson库解析JSON数据•避免使用Guava同时使用一些类库来避免65k method limit(一个Android程序中最多能执行65536个方法)•使用 Fragments来呈现UI视图•使用 Activities 只是为了管理 Fragments•Layout 布局是 XMLs代码,组织好它们•在layoutout XMLs布局时,使用styles文件来避免使用重复的属性•使用多个style文件来避免单一的一个大style文件•保持你的colors.xml 简短DRY(不要重复自己),只是定义调色板•总是使用dimens.xml DRY(不要重复自己),定义通用常数•不要做一个深层次的ViewGroup•在使用WebViews时避免在客户端做处理,当心内存泄露•使用Robolectric单元测试,Robotium 做UI测试•使用Genymotion 作为你的模拟器•总是使用ProGuard 和 DexGuard混淆来项目Android SDK将你的Android SDK放在你的home目录或其他应用程序无关的位置。
当安装有些包含SDK的IDE的时候,可能会将SDK放在IDE同一目录下,当你需要升级(或重新安装)IDE或更换的IDE时,会非常麻烦。
此外,若果你的IDE 是在普通用户,不是在root下运行,还要避免吧SDK放到一下需要sudo权限的系统级别目录下。
ANDROID源码编译流程
ANDROID源码编译流程编译Android源代码是一个相对复杂的过程,但是如果你按照正确的步骤进行,你就可以成功地编译出你自己的Android系统。
下面是一个大致的流程来编译Android源代码:1.环境准备:在开始编译Android源代码之前,你需要确保你的系统满足以下要求:- Linux系统(推荐使用Ubuntu)-64位操作系统-至少8GB的RAM-大规模存储空间(30GB或更多)你还需要安装一些必要的开发包和工具,例如JDK、Git等。
详细的要求可以在Android官方网站上找到。
2.获取源代码:要编译Android系统,你需要先获取源代码。
Android的源代码存储在Git仓库中,你可以使用Repo工具来管理多个Git仓库。
首先,你需要安装Repo工具。
你可以通过下面的命令来安装:```$ sudo apt-get install repo```之后,在一个合适的目录下创建一个新的文件夹来存放源代码:$ mkdir myandroid$ cd myandroid```使用Repo工具来初始化一个仓库:``````之后,同步源代码到你的本地仓库:```$ repo sync```这个过程可能需要花费几个小时甚至更长时间,取决于你的网络速度和计算机配置。
3.构建工具链:Android使用GNU Make和Ninja构建工具来构建系统。
你需要安装这些工具。
首先,安装GNU Make和一些必要的依赖库:```$ sudo apt-get install build-essential然后,安装Ninja:```$ sudo apt-get install ninja-build```4.配置构建环境:在构建Android系统之前,你需要进行一些配置操作。
首先,你需要选择要构建的目标设备和版本。
你可以在Android源代码的根目录中找到`lunch`脚本。
运行`lunch`脚本并选择你的目标:```$ source build/envsetup.sh$ lunch```然后,你需要选择编译时使用的编译器。
《Android应用程序设计》实验报告 (2)
实验1 搭建开发环境与第1个Android程序【实验目的】1.熟悉Android开发环境的搭建2.掌握用Eclipse开发Android程序的流程【实验内容】一、搭建Android开发环境按照下面的步骤,完成Android环境的搭建。
1.1 JDK的安装及配置1.根据电脑的系统位数安装软件包里的JDK,安装目录设置为d:\jdk1.x。
(d为你的安装盘,可以设为任意盘;x为你安装的jdk版本)2. WIN7系统环境变量设置(1)环境变量设置一(2)环境变量设置二(3)环境变量设置三(4)环境变量设置四1)创建新的环境变量。
名:JA V A_HOME,值:x:\jdk1.72)修改系统变量Path,在path变量值前添加这段:%JA V A_HOME%\bin;3)修改系统变量classpath,值为:.;%JA V A_HOME%\lib\dt.jar;%JA V A_HOME%\lib\tools.jar;(5)环境变量设置五1)测试开发环境。
在开始->搜索程序和文件里输入cmd.exe,打开cmd。
输入cd c:\ 命令进入c盘根目录。
2)在c盘根目录下使用记事本编写源文件,并存为java文件。
public class MyApp {public static void main (String[] args) {System.out.println(“我能学好Java语言!”);} }3)使用javac命令编译程序,在cmd命令行输入:javac MyApp.java生成class类型文件。
4)使用java命令运行程序,在cmd命令行输入:java MyApp如果在命令行显示结果“我能学好Java语言!”,则JDK环境配置成功。
1.2 Android SDK的安装及配置1. 解压adt-bundle-windows-x86_64-20131030.zip文件,里面的SDK是免安装版。
android编译流程
android编译流程Android编译流程是将源代码转化为可执行的Android应用程序的过程。
编译流程包括以下几个主要步骤:1.获取源代码:首先,开发人员需要从Android Open Source Project (AOSP) 或者其他可靠的源代码库中获取Android源代码。
获取源代码可以通过使用版本控制工具如Git来完成。
2.准备构建环境:在编译之前,需要准备好构建环境。
这包括安装正确的开发工具、依赖库和配置。
- 开发工具:Android编译使用Java编程语言,因此需要安装Java Development Kit (JDK)。
同时还需要安装Android软件开发工具包(SDK),用于构建和测试Android应用。
- 依赖库:编译Android需要一些依赖库,包括C/C++编译器、make 工具、libc、libm和其他系统库。
这些库可以通过安装合适的软件包管理工具来获取。
-配置:开发人员需要根据构建计划配置构建环境。
这包括选择编译器版本、构建目标平台以及其他构建选项。
3.设置环境变量:为了让系统能够找到正确的构建工具和依赖库,开发人员需要设置一些环境变量。
这可以通过在命令行终端中设置系统环境变量或者使用脚本文件进行配置来实现。
4.执行初始化构建:在进行实际的编译之前,需要执行一些初始化构建操作。
这包括解压源代码文件、创建构建描述文件、设置编译选项等。
5.编译源代码:编译源代码是整个编译流程的核心步骤。
在此步骤中,构建系统将递归地遍历整个源代码树,并将每个源文件编译成目标文件。
编译过程通常分为以下几个阶段:-预处理:在编译之前,构建系统会首先对源代码进行预处理。
预处理器将处理预处理指令、宏定义等,并将源代码转化为可供编译器识别的形式。
-编译:编译器将源代码编译成汇编语言或者中间代码。
-汇编:汇编器将汇编语言代码转化为机器可执行的二进制指令。
android怎么修改源码
android怎么修改源码第⼀篇Posted on 2010-08-19 13:37 阅读(1607)第⼀部分:添加⼀个新的应⽤1. 在和系统相同版本的SDK⽬录下开发⾃⼰的android应⽤2. 把开发的android⼯程放到源码的packages/apps/⽬录下3. 在⼯程⽬录下添加Android.mk⽂件,修改LOCAL_PACKAGE_NAME :=test001 把⼯程名指定为⾃⼰的⼯程名,我加载的⼯程为test001 LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := userLOCAL_SRC_FILES := $(call all-java-files-under, src)LOCAL_STATIC_JAVA_LIBRARIES := googlelogin-clientLOCAL_PACKAGE_NAME :=test001LOCAL_CERTIFICATE := sharedinclude $(BUILD_PACKAGE)# Use the folloing include to make our test apk.include $(call all-makefiles-under,$(LOCAL_PATH))4. 回到源码⽬录,然后执⾏ . build/envsetup.sh 注意sh后⾯有个空格5. 执⾏mmm packages/apps/test001 编译test001.apk包6. 执⾏make snod,编译system.img包7. 执⾏emulator &就可以在应⽤程序下看到⾃⼰编译的⼯程了第⼆部分:修改原有的Android应⽤1. ⾸先新建⼀个android⼯程,加载⾃⼰的java⽂件和资源⽂件2. 在⾃⼰的android⼯程初步调试成功以后,把该⼯程的java⽂件,资源⽂件拷贝到联系⼈对应的java⽂件和资源⽂件⽬录3. 然后在linux下执⾏以下命令,编译⼈联系⼈模块,把资源⽂件编译到联系⼈⽬录中. build/envsetup.shmmm packages/apps/Contacts4. 刷新android源码⼯程,这个时候你就可以在Contacts包⽬录下看到你新加的资源⽂件和源⽂件了,并可以在源码⼯程下修改代码并直接调试了5. ?? 为什么不在android源码⼯程下直接添加源⽂件和xml资源⽂件了答:因为我们的android源码⼯程师以java⼯程导⼊的,如果添加android的xml⽂件的话,java程序⽆法识别资源R⽂件,所以我们必须先把需要的xml资源⽂件先在linux下编译6. 在源码⼯程修改后,则可在linux下再次执⾏联系⼈编译命令,并 make snod加载system.img⽂件,并启动模拟器(emulator &),就可以看到你的修改了。
Android逆向工具篇—反编译工具的选择与使用
Android逆向⼯具篇—反编译⼯具的选择与使⽤作者 | 天天记⼩本⼦上的lilac 来源 | CSDN今天给⼤家介绍⼀下Android App 在Java层的逆向⼯具。
逆向⼯具的介绍在过去,当我们想要了解⼀个 app 内部运作细节时,往往先通过 ApkTool 反编译 APK,⽣成 smali 格式的反汇编代码[1],然后⼤佬和⽼⼿直接阅读 smali 代码,适当的进⾏修改、插桩、调试,经过⼀定的经验和猜想,理解程序的运⾏逻辑和加解密细节,⽐如如下的 smali 代码。
smail我们只要先这样,再那样,最后再这样,对对对,就这样,⼀个程序的加密就被破解出来了。
是不是迫不及待想来⼀次App的逆向之旅了?事实上,这种⽅式对⼩⽩实在不友好,有没有更加友好的⽅式呢?当然是有的,如果你百度或者 google 搜索逆向相关的教程和分享,很容易就会发现下⾯这三个⼯具。
在介绍⼯具之前,我们先补充⼀下APK结构的知识,我们以伊对这个社交 Apk 为例。
APK ⽂件其实是⼀种特殊的 zip 格式,我们可以直接⽤ 360 压缩或者别的压缩⼯具打开。
为了满⾜⾃⾝的功能和设计,⼏乎每⼀个都会在基础的⽂件结构上添加不少东西,但有六个部分是不变的,我们罗列和称述⼀下。
⽂件或⽬录作⽤META-INF/描述apk包信息的⽬录,主要存放了签名信息,配置信息,service注册信息res/存放apk资源⽂件的⽬录,⽐如图⽚、图标、字符串、样式、颜⾊assets/同样是存放apk资源⽂件的⽬录,但和res有差异,和我们关系不⼤resources.arsc资源索引,包含不同语⾔环境中res⽬录下所有资源的类型、名称与ID所对应的信息lib/存放so⽂件,越来越多的应⽤由C/C++编写核⼼代码,以SO⽂件的形式供上层JAVA代码调⽤,以保证安全性,这个⽬录是逆向解密关注的重点classes.dex(⼀个或数个)Android程序运⾏在Dalvik虚拟机上,⽽dex就是Dalvik虚拟机的可执⾏⽂件, 相当于Windows平台中的exe⽂件,通过反编译dex,可以获得apk源码(这个说法不很准确,但⽅便理解)AndroidManifest.xml清单⽂件,包含了App⼤量的的配置信息,⽐如包名、应⽤需要拥有的权限(打电话/录⾳/⽹络通信等等)、以及所有的界⾯和程序组件的信息,⽆法解压apk时直接打开,因为清单⽂件在apk打包过程中被编译成了⼆进制格式⽂件接下来我们介绍以下反编译⼯具,看⼀下反编译⼯具的作⽤⼯具作⽤ApkTool解析resources.arsc,AndroidManifest.xml等⽂件,反编译dex⽂件为smali源码Dex2jar将dex⽂件转化为jar⽂件Jd-gui反编译jar,查看java源码⽐如使⽤ Dex2jar+Jd-gui, 最终得到这样的结果。
Android编译命令
Android编译命令⼀、引⾔先看下⾯⼏条指令,相信编译过Android源码的⼈都再熟悉不过的。
source setenv.shlunchmake -j12记得最初刚接触Android时,同事告诉我⽤上⾯的指令就可以编译Android源码,指令虽短但过⼏天就记不全或者忘记顺序,每次编译时还需要看看⾃⼰的云笔记,冰冷的指令总是难以让我记忆。
后来我决定认真研究下这个指令的含义。
知其然还需知其所以然,这样能更深层次的理解并记忆,才能与⾃⾝的知识体系建⽴强连接,或许还有意外收获,果然如此,接下来跟⼤家分享⼀下在研究上述⼏条指令含义的过程中,深⼊了解到的Android Build(编译)系统。
⼆、编译命令准备好编译环境后,编译Android源码的第⼀步是source build/envsetup.sh,其中source命令就是⽤于运⾏shell脚本命令,功能等价于”.”,因此该命令也等价于. build/envsetup.sh。
在⽂件envsetup.sh声明了当前会话终端可⽤的命令,这⾥需要注意的是当前会话终端,也就意味着每次新打开⼀个终端都必须再⼀次执⾏这些指令。
起初并不理解为什么新开的终端不能直接执⾏make指令,到这⾥总算明⽩了。
接下来,解释⼀下本⽂开头的引⽤的命令:source setenv.sh //初始化编译环境,包括后⾯的lunch和make指令lunch //指定此次编译的⽬标设备以及编译类型make -j12 //开始编译,默认为编译整个系统,其中-j12代表的是编译的job数量为12。
所有的编译命令都在envsetup.sh⽂件能找到相对应的function,⽐如上述的命令lunch,make,在⽂件⼀定能找到function lunch(){...}function make(){...}source envsetup.sh,需要cd到setenv.sh⽂件所在路径执⾏,路径可能在build/envsetup.sh,或者integrate/envsetup.sh,再或者不排除有些⼚商会封装⾃⼰的.sh脚本,但核⼼思路是⼀致的。
Android编程入门教程andbook中文版
Android编程Android编程附带教程来自-Community(本文仅供学习交流)原文版权属于/Nicolas Gramlich撰写张劲锋译在检查最新版本由提供2andbook-Android编程目录序言/如何阅读本文 (5)介绍 (6)什么是Android--一款GPhone? (7)俯瞰Android (8)开放性 (8)所有应用程序都是平等地创建 (9)打破应用程序局限 (9)快速&简单的应用程序开发 (9)第一周 (12)Dalvik.equals(Java)==false (13)与普通Java虚拟机的差异 (13)Android Code Challenge (14)创建Android应用程序 (15)剖析一个Android应用程序 (15)Activity (15)Intent Receiver (17)Service (17)Content Provider (18)Android用户界面 (19)屏幕元素层次 (19)Android UI元素与Swing UI元素比较 (22)AndroidManifest.xml文件 (23)一般的 (24)<manifest> (25)<uses-permission> (25)<permission> (25)<instrumentation> (25)<application> (25)由 提供4<meta-data>……………………………………………………………27<receiver>………………………………………………………………27<service>………………………………………………………………27<provider> (28)资源和魔幻的R.java 文件 (29)资源 (29)资源列表 (29)在代码中使用资源 (30)参考资源 (31)可选资源和局部化 (32)魔幻的R.java (33)Hello World --Andoird 方式 (34)安装Android SDK (35)Android 开发工具(ADT) (35)安装完毕,我们来写点代码..............................37创建一个新Android 项目 (37)运行你第一个应用程序 (37)UI--Java 方式 (45)System.out.println(......)? (46)LogCat (46)使用Intent (49)启动(子)Activity .............................................49在Java 代码中找到XML 定义的View (52)为View 处理点击 (53)从子Activity 返回数值 (56)给(子)Activity 传递数据.................................46重要的Layout 和ViewGroup (60)RelativeLayout (60)参考书目 (61)缺失章节 (62)社区 (62)由 提供6序言/如何阅读本文本文为以前已经使用Java 编程并想开始为Android 平台开发的开发者编写。
【0004】Androidstudio使用
【0004】Androidstudio使⽤【1】/?view=theme&id=563a1a7680b4acf11273ae94【2】⾸先第⼀步就是在你的module所在的⽬录复制⼀份,并粘贴然后重命名成为你需要的名字,⽐如我根据我的需要,我把我的testservice改成了testservice_interface了第⼆步,打开你的Android Studio -> Project,你就会看到你刚刚复制的module第三步,找到在Project下的setting.gradle,打开,加上你的刚刚复制好的⽂件名第四步,sync now,同步你的gradle,然后你刚复制的module名字字体就变⿊体了第五步,切换⾄Android视图,修改包名最后,修改你的应⽤名称,你想改什么就什么呗,在manifest下label那,你会找得到的。
最最最后⼀步,也是⾮常重要⼀步,修改你的应⽤id,不然你这个app会覆盖掉你原来的app哦你还会发现,其实应⽤的唯⼀标识是id,只要id不同,就是两个不同的app,也就是说你可以拥有两个名称⼀模⼀样的app安装在⼿机上,如果你喜欢的话----------------------------------------------------------------------------------------------------------------------【3】Android Studio中的同⼀个⼯程下复制⼀份module⽽不改变原来的demo?⾸先第⼀步就是在你的module所在的⽬录复制⼀份,并粘贴然后重命名成为你需要的名字,⽐如我根据我的需要,我把我的testservice改成了testservice_interface了第⼆步,打开你的 Studio -> Project,你就会看到你刚刚复制的module第三步,修改包名第四部,修改应⽤程序ID,在app⽬录下的build.gradle中,如果应⽤ID相同的话,怎么安装都是同⼀个应⽤程序最后,修改你的应⽤名称,进⼊strings.xml下修改app name,这样AndroidManifest.xml⾥引⽤的appname就⾃动更改了。
准备你的In-appBilling程序
准备你的In-appBilling程序准备好你的内购应⽤在开始使⽤ In-app Billing 服务之前,你需要先把包含 In-app Billing Version 3 API 的库添加到你的Android⼯程中。
你还需要设置你的应⽤和Google Play通信需要的权限。
另外,你还需要在你的应⽤和Google Play之间建⽴⼀个稳定连接。
最后还要确认Google Play⽀持你应⽤程序使⽤的In-app Billing API版本下载⽰例程序在这个训练课程,你将⽤到⼀个叫做TrivialDrive的⽰例程序对于In-app Billing Version 3的参考实现。
这个例⼦⾥有些便捷类可以快捷设置In-app Billing服务,编码解码数据类型以及在你程序的主线程处理In-app Billing请求。
注1去下载例⼦程序:1. 打开 .2. 在SDK Manager中展开Extras部分.3. 选择 Google Play Billing Library.4. 点击 Install packages 完成下载。
这个例⼦⽂件将会安装到<sdk>/extras/google/play_billing/. (译者注:就是在你电脑上SDK⽬录下⾯)添加应⽤到控制台在 Google Play 开发者控制台,你可以发布你的添加了 In-app Billing 的应⽤,还可以管理来⾃你的应⽤中可以销售的各种数字商品。
当你在开发者控制台创建⼀个新应⽤后,控制台会为你的应⽤⾃动⽣成⼀个公钥(public license key)。
你将需要使⽤这个公钥在你的应⽤和Google Play服务器之间建⽴⼀个可信赖的连接。
这个公钥在应⽤创建的时候⽣成,在以后更新你程序的APK⽂件时不必再次⽣成。
把你的应⽤添加到开发者控制台:1. 打开并登陆,如果你先前没有注册的话需要先注册⼀个新的开发者账号。
为了销售内购商品,你还需要⼀个商业账号。
编译apk简单方法
编译apk简单方法
编译APK的简单方法有以下几种:
1. 使用Android Studio:在Android Studio中打开项目后,通过点击“Build”菜单中的“Make Project”或“Rebuild Project”选项来编译APK。
编译完成后,APK文件将会生成在项目的“app/build/outputs/apk”目录下。
2. 使用Gradle命令行:在项目根目录下,通过运行“gradlew assemble”命令来编译APK。
编译完成后,APK文件将会生成在项目的“app/build/outputs/apk”目录下。
3. 使用命令行工具(例如Ant):在项目根目录下,通过运行构建工具的命令来编译APK。
具体的命令会根据使用的构建工具而有所不同,一般会指定项目的构建文件(例如
build.xml)和输出目录。
需要注意的是,编译APK前需要先确认项目的依赖库已经正确配置,并且项目中的代码没有语法错误。
另外,编译过程中可能会出现一些错误和警告信息,需要根据具体情况进行调试和修复。
Android开发和调试中文文档
Android中文文档:开发和调试在eclipse上开发Android应用程序在用eclipse IDE开发android应用程序之前,你首先要创建一个Android工程,并且建立一个启动配置,在此之后你才可以开始编写,运行,以及调试你的应用程序。
以下章节是假设你已经在eclipse环境中安装了ADT插件,如果你没有安装,请安装之后再使用以下说明。
参考安装eclipse 插件(ADT)创建一个android工程ADT提供了一个新的工程向导,你可以快速的创建一个新的工程或者在现有代码上创建工程。
创建工程的步骤如下:选择File > New > Project选择 Android > Android Project, 然后按下 Next选择项目内容:选择 Create new project in workspace,为编码创建一个全新的工程。
输入工程名称(project name),基础软件包的名称(the base package name),以及Activity 类的名称。
以创建stub .java文件等文件和程序名字。
选择Create project from existing source ,为已有代码创建一个工程。
如果你想编译运行SDK中提供的示例程序,可以使用这个选项。
示例程序的存放在SDK的samples/目录下。
浏览包含已有代码的目录,点击ok,如果目录中包含有可用的android manifest 文件,ADT 将为你填写合适的软件包,activity,和应用程序名称。
按下Finish.ADT插件会根据你的工程类型创建合适的文件和文件夹,如下:src/ 包含stub .java Activity文件的文件夹.res/ 资源文件夹.AndroidManifest.xml 工程清单.创建一个启动项能够在eclipse上运行调试应用程序之前,你必须为它创建一个启动项。
Aide教程
Aide教程 - 由爱上疯人院姑娘整理编写DsautoTim编辑aide是一款可以运行在我们安卓手机或者平板的一款很强大的开发工具。
有着强大的代码补全功能以及布局可视化预览功能,我们可以在我们的手机端来编写我们的代码并且可以直接编译出安卓的可执行apk程序。
而且完全兼容电脑端eclipse项目,同样使用java代码和xml代码来编写我们的安卓程序。
目前最新版为版,请大家自行百度搜索下载。
这里的教程是为那些没有电脑或者不方便使用电脑想在手机端学习编程的人提供。
如果有电脑的同样欢迎在这里学习安卓的软件开发,一起交流,代码是一样的。
由于目前aide中文支持不太好,在中文输入的时候我们可以在代码中为中文单独占一行,以免代码错乱,或者使用键值对文件存储中文,在我们的第15课有介绍。
前10课教程为好个飞飞所写,在这里鸣谢一下好个飞飞。
这里把好个飞飞的教程直接搬运过来了。
从11课开始的教程现在是我在写,如果有什么不对的地方欢迎大家指出,对教程中有什么不懂的问题都可以在此帖进行提出。
1.前言--Android初级教程大家好,前言是每个教程基本都有的东西吧....(这句话是不是很眼熟没错,Py坛的悠悠鱼教程就是这么写的)时至今天,我依然记得当年在诺基亚手机上写出第一个HellowWorld时的激动心情,随着时间的发展,诺基亚S60手机开始衰落了,安卓并没有好好继承起在Python平台上写程序的愿望,直到国外的牛人推出AIDE,才让我们又重新然起了在手机上开发应用程序的热情。
我怀着很忐忑的心情开始写在手机端进行android开发的教程。
因为它不同以前的PyS60,手机AIDE上新建的android项目和电脑端的eclipse上新的是一样的,AIDE生成的程序和我们在电子商店下载的应用程序是一样的,说到这你是不是有点激动呢不过,这也意味着,在学习伊始会比学习PyS60要更难一点。
很多机友应该很想提高一下玩机水平,写出个自己的软件。
Android Stduio 使用说明
Android studio安装之后如果已经有代码选择Import project(Eclipse……)注意工程目录不要含有中文字符。
安装好之后启动adb:Adb的目录在将“C:\Users\Administrator\AppData\Local\Android\sdk\platform-tools”添加至环境变量在运行中cmd,调用命令操作窗口。
进入后输入adb查看运行结果。
响应命令则成功。
编译报错--Error running app: Default Activity not found修改启动launch为nothing即可。
报错—找不到符号A.添加jar包解决一部分找不到符号的问题修改方法:B.添加下图SDK的jar包,注意路径重新命名后添加:优先编译依赖:gradle.projectsEvaluated {tasks.withType(JavaCompile) {pilerArgs.add('-Xbootclasspath/p:app\\libs\\framework.jar') }}C.剩下的错误还有2个如下图:错误1是由于不同平台导入的difference.java是不一样的,修改用对应的,本文采用Difference.java_HI3798MV100来覆盖Difference.javaD.新建一个build文件夹,给一个路径成功:Adb相关运行报错:查看5037端口是否被占用:其中端口状态有:LISTENING表示侦听状态、ESTABLISHED表示建立连接,CLOSE_WAIT对方主动关闭连接或者网络异常导致连接中断,TIME_WAIT我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。
终止后后台还是有adb启动,导致被占用,最终发现是浏览器占用,修改端口或去掉浏览器的adb都可。
机顶盒端设置IP:通过adb connect 192.168.30.68连接,在android studio中可以发现已经连接上设备了:Android studio调试编译成功后,采用adb安装到机顶盒运行,出现错误:原因是后门在system里面有一个预制apk1.mount -o remount,rw /system---获取system写权限2.给apk换个名字就找不到了~3.删除data下面的参数签名:1.assign文件夹中执行sign.sh文件,主要为命令行:source keytool-importkeypair -k test.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias jz其中test.jks是生成签名文件,相关信息要与android studio 、代码中一致内容一致,代码(app下的build.gradle文件):signingConfigs {release {storeFile file("./test.jks")storePassword '123456'keyAlias 'jz'keyPassword '123456'}debug {storeFile file("./test.jks")storePassword '123456'keyAlias 'jz'keyPassword '123456'}}android.applicationVariants.all { variant ->variant.outputs.each { output ->output.outputFile = new File("Jzfactory.apk" );}}签名完成:其中:手动添加签名命令为java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk 删除apk:启动相关am start -n com.jzbyapp.jzfactory/.MainActivityUpm enable com.jzbyapp.jzfactorySDK环境IPTV基线使用Hisi3798MV200 android4.4版本,基线SDK名称:HiSTBAndroidV600R003C01Patch011.解压HiSTBAndroidV600R003C01SPC010.tar.gzTar –vxf HiSTBAndroidV600R003C01SPC010.tar.gz2.补丁:解压testpatch_for_3798mv200_spc010_20170217_unicom_001.tar.gz,将其中的new文件夹覆盖步骤1中SDK基线的目录3.打后门补丁,4.配置配置环境变量与实际编译环境一致5编译SDK(source build/envsetup.sh,lunch Hi3798CV200-eng;更新api,make update-api ;完整编译make bigfish -j32 2>&1 | tee bigfish.log)编译成功。
Androidapk反编译基础(apktoos)图文教程
Androidapk反编译基础(apktoos)图⽂教程很久有写过⼀个⼴⼯图书馆主页⼀个类爬⾍的demo(因为没接⼝,只能扒取静态⽹页),实现⼀些图书馆系统的⼀些功能。
但最近发现图书馆系统在html页⾯上做了⼿脚,⼀页html 页⾯中嵌⼊了⼏千⾏的注释,并有了⾃⼰的App,应该是为了增加扒取的流量成本来防⽌别⼈去扒取⽹页,不过加注释这⼿段就不敢恭维了,内⽹访问速度还⾏,但外⽹访问的话体验很差的。
如下图:⼀堆注释,导致⼀个⽹页要2MB主页上的APP,必然是⽤了图书馆的后台接⼝和服务器交互的,从⽽想试试⽤反编译的⼿段来看看APP使⽤了什么接⼝。
(另外更简单可以通过来给Android⼿机抓包分析其接⼝,再⽤Wireshark来分析tcp包,不过你想要知道全部接⼝的话,可能需要⼀个个接⼝去调⽤,会⽐较⿇烦,采⽤反编译,可能集中在⼀个类中找到这些接⼝)。
解压缩APKTool,并把要反编译的APK放⼊⽬录中反编译:通过CMD进⼊上⾯的⽬录,执⾏命令: apktool decode ZhaoBenShu.apk outdir稍等⽚刻完成反编译,反编译后的⽂件会在outdir⽬录下。
---outdir⽬录结构res :资源⽂件,跟adnroid⼯程⽬录下的res基本⼀样,各种UI图⽚ XML布局⽂件 values xml⽂件(多了⼀个public.xml,有各个资源的id号(R.java中的id))smail:这个是重点⽂件夹,⾥⾯都是smail格式⽂件,是Dalvik虚拟机执⾏的操作码(Dalvik opcodes),这些操作吗有⾃⼰的语法,如果有学过JNI的话,这些语法还是⽐较容易看懂和理解的。
AndroidManifest.xml:Android⼯程下的AndroidManifest.xmlapktool.yml:⽤于重打包。
smail语法:(全部语法请)smail中的数据类型签名跟java中的是⼀样的,如下。
搭建Android源码编译环境
Android 2.3.1 的源代码并在 Ubuntu 10.04(32 位)上编译通过。
这篇文章简 要记录了下载、编译的过程。
关于搭建 Android 开发环境的文章已经有很多,本文只简要介绍一下,做为备 忘。
[ 编译前的准备 ] 这一步安装获取源代码以及编译所需要的软件,使用如下命令:$ sudo aptitude install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev 另外,参考别人编译 Android 2.3 的经验,安装了下列软件包:$ sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6 虽然 Android 官方网站上讲不支持 Java 6,不过我使用 Java 6 也可以编译通 过,所以在这里 Easwy 安装的是 Java 6。
首先去掉/etc/apt/sources.list 中 这两行的注释,使能 Java 6 源:deb /ubuntu lucid partner deb-src /ubuntu lucid partner 然后安装 Java 6 JDK:$ sudo aptitude install sun-java6-jdk1接下来下载 repo 工具,这是 Google 提供的一个 Python 脚本,方便管理多个 Git 版本库:$ cd ~ $ mkdir bin $ curl /repo >~/bin/repo $ chmod a+x ~/bin/repo 记得把 repo 加到你的路径中, 方便以后使用。
编辑~/.bashrc, 加入下面一行:PATH=$PATH:~/bin export PATH 然后用命令. ~/.bashrc,以后就可以直接使用 repo 命令了。
Android中文文档
android 中文文档∙丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至可嵌入的web浏览器。
∙内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据∙资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layout files )。
∙通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息。
∙活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。
有关更多的细节和怎样从头写一个应用程序,请参考如何编写一个Android 应用程序.Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。
它们通过Android 应用程序框架为开发者提供服务。
以下是一些核心库:∙系统C 库- 一个从BSD 继承来的标准C 系统函数库(libc ),它是专门为基于embedded linux 的设备定制的。
∙媒体库- 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。
编码格式包括MPEG4,H.264, MP3, AAC, AMR, JPG, PNG 。
∙Surface Manager - 对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
∙LibWebCore - 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
∙SGL - 底层的2D图形引擎∙3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D 加速(如果可用)或者使用高度优化的3D软加速。
android单独编译某个模块
android单独编译某个模块第⼀次下载好Android源代码⼯程后,我们通常是在Android源代码⼯程⽬录下执⾏make命令,经过漫长的等待之后,就可以得到Android 系统镜像system.img了。
以后如果我们修改了Android源代码中的某个模块或者在Android源代码⼯程新增⼀个⾃⼰的模块,是不是还是执⾏make命令呢?答案是否定的,Google为我们准备了另外的命令来⽀持编译单独的模块,以及重新打包system.img的命令。
在继续学习Android源代码之前,就让我们先来看看这个命令吧。
⼀. ⾸先在Android源代码⽬录下的build⽬录下,有个脚本⽂件envsetup.sh,执⾏这个脚本⽂件后,就可以获得⼀些有⽤的⼯具:USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh注意,这是⼀个source命令,执⾏之后,就会有⼀些额外的命令可以使⽤:- croot: Changes directory to the top of the tree.- m: Makes from the top of the tree.- mm: Builds all of the modules in the current directory.- mmm: Builds all of the modules in the supplied directories.- cgrep: Greps on all local C/C++ files.- jgrep: Greps on all local Java files.- resgrep: Greps on all local res/*.xml files.- godir: Go to the directory containing a file.这些命令的具体⽤法,可以在命令的后⾯加-help来查看,这⾥我们只关注mmm命令,也就是可以⽤它来编译指定⽬录的所有模块,通常这个⽬录只包含⼀个模块。
Android中的build.gradle文件深入讲解
Android中的build.gradle⽂件深⼊讲解⼀、什么是Gradlegradle是⼀个项⽬构建⼯具,java开发中有两个⼤名⿍⿍的项⽬构建Maven,Ant,其中maven简单易控深受开发者喜爱。
项⽬构建⼯具是什么?能⼲吗?开发某些项⽬时,需要很多jar或者库的⽀持,还没开始开发就下载了n多个库,浪费了时间不说,这些库之间兼容性⼜⽆法保证。
删了?⽩下载了。
不删?⼜不兼容。
此时就需要使⽤项⽬构建⼯具,简单的说就是⼀个可以根据简单的配置⽂件⾃动去下载相应包/库的软件。
⾃动的还很简单,不⽤岂不亏了。
多个项⽬构建⼯具各有特点,但是核⼼思想⼀样。
简单的说,Gradle是⼀个构建⼯具,它是⽤来帮助我们构建app的,构建包括编译、打包等过程。
我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”⾃动为我们构建app。
Android Studio中默认就使⽤Gradle来完成应⽤的构建。
有些同学可能会有疑问:”我⽤AS不记得给Gradle指定过什么构建规则呀,最后不还是能搞出来个apk。
“ 实际上,app的构建过程是⼤同⼩异的,有⼀些过程是”通⽤“的,也就是每个app的构建都要经历⼀些公共步骤。
因此,在我们在创建⼯程时,Android Studio ⾃动帮我们⽣成了⼀些通⽤构建规则,很多时候我们甚⾄完全不⽤修改这些规则就能完成我们app的构建。
有些时候,我们会有⼀些个性化的构建需求,⽐如我们引⼊了第三⽅库,或者我们想要在通⽤构建过程中做⼀些其他的事情,这时我们就要⾃⼰在系统默认构建规则上做⼀些修改。
这时候我们就要⾃⼰向Gradle”下命令“了,这时候我们就需要⽤Gradle 能听懂的话了,也就是Groovy。
Groovy是⼀种基于JVM的动态语⾔,关于它的具体介绍,感兴趣的同学可以⽂末参考”延伸阅读“部分给出的链接。
我们在开头处提到“Gradle是⼀种构建⼯具”。
实际上,当我们想要更灵活的构建过程时,Gradle就成为了⼀个编程框架——我们可以通过编程让构建过程按我们的意愿进⾏。
android怎么修改源码
第一篇用eclipse + ADT作为android开发工具,可以说是很方便的,在HelloActivity小程序里我们就感觉到eclipse功能的强大。
那么,我们可以用 eclipse来开发android源码吗?如果我们直接把android源码里一个工程导入eclipse,一般来说都会出现错误,说许多类库(包)找不到。
今天找到关于怎样使用eclipse来开发android源码的官方文档:https:///a//opensource/using-eclipse从该文档和实践可以总结出几点:1、可以使用eclipse来编辑JAVA程序、检查错误(主要是类库包含和语法方面),但是不能在eclipse 上编译运行android源码,还是得在shell中make(或mm或mmm)2、android源码文件夹里提供有一些eclipse配置文件,.claapath:eclipse工程的配置文件,方便我们直接把android源码相应的文件和JAVA包导入工程android-formatting.xml和android.importorder:这个很重要,主要是用来规范我们的编码风格,更容易使我们的代码风格一致3、把android源码作为一个工程导入eclipse时,必须注意两点1)、新建的工程必须是java project,不能是android project,否则会破坏android源码(一般是多添加文件/文件夹)2)、导入前最好检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹)总的来说:1、用eclipse来编辑代码、检查错误2、不在eclipse上编译、运行android源码程序,只能在命令行通过make(或mm或mmm)编译android源码3、可以在eclipse上调试android源码程序(原理:eclipse通过ddms服务器在emulator上进行调试),并可以单步调试、断点调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Android 工程里编译自己的应用
文件名称: 在Android 工程里编译自己的应用
文档编号:
深圳市安普盛科技有限公司
2013年11月
H O N M A X t o
官网
目录
文件名称: ............................................................................................................................................................. 1 在Android 工程里编译自己的应用 (1)
文档编号: ............................................................................................................................................................. 1 一, 本文挡适用项目 ...................................................................................................................................................... 3 二, 操作流程 .................................................................................................................................................................. 3 三, 相关文件 ................................................................................................................................................................ 11 四, 更新记录 . (13)
H O N M A X t o
官网
一, 本文挡适用项目
本文档使用于安普盛发布的所有Android 源码,在上面编译自己的应用程序均可照此流程操作。
二, 操作流程
1. 首先在eclipse 里面编译你的应用代码,在模拟器或者真机上成功运行后,将这个应用的源码复制到工程
源码packages/apps 下:
例:现在我以我的工程为例,截图做一个示范
H O N M A X t o
官网
H O N M A X t o
官网
H O N M A X t o
官网
在Eclipse 里面自动生成的项目源码中,有一些文件夹在Android 工程编译的时候没有用到,有些甚至会引起编译报错,在编译之前我们最好将这些文件夹删除:
H O N M A X t o
官网
接下来注意了,是需要在应用源码里面添加的文件!
随包会附上Android.mk 样本,需要把它复制到应用源码的根目录下,例如我的应用是AdjustVolume ,我就把它放在AdjustVolume/下,里面的代码非常少,我们需要在里面改动的有这些:
H O N M A X t o
官网
最后,要把包加入到编译包中:
H O N M A X t o
官网
保存更改,这样我们修改代码的工作就完成了!
2. 接下来是编译,在linux 下面打开terminal :
这样子没有报错就没有问题了,最后是烧录卡。
H O N M A X t o
官网
3. 拿出一张sd 卡,接入电脑,识别到后,重新打开一个命令窗口,:
这些工作结束后,把你的卡插到板子上,开机,就能在所有应用程序的界面看到你的应用并运行它了!
H O N M A X
t o
官网
PS :应用开发功能提示
如果想要让应用在一开机之后就随机启动,需要在应用程序代码根目录下面的AndroidManifest.xml 里加这样子一段代码:
三, 相关文件
A. 636D1规格书,;
B. 通用母卡升级指引 ;
C. 音量加 位置 ;
D. UART1位置;
E.
android 编译安装。
H O N M A X t o
官网
H O N M A X t o
官网
四, 更新记录
版本 更新内容 责任人 更新日期 V1 详细描述在Android 源码里编译自己应用的操作流程 Shirley 2013/11/1
H O N M A X
t o
官网。