FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
android_frameworks_base/include/android_runtime/AndroidRuntime.h at ics · inter5/android_frameworks_base · GitHub
inter5
/
android_frameworks_base
Public
forked from
tpruvot/android_frameworks_base
Notifications
You must be signed in to change notification settings
Fork
0
Star
1
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
android_frameworks_base
/
include
/
android_runtime
/
AndroidRuntime.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
136 lines (108 loc) · 3.81 KB
Breadcrumbs
android_frameworks_base
/
include
/
android_runtime
/
AndroidRuntime.h
Copy path
File metadata and controls
136 lines (108 loc) · 3.81 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*
* Copyright (C) 2005 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//
#
ifndef
_RUNTIME_ANDROID_RUNTIME_H
#
define
_RUNTIME_ANDROID_RUNTIME_H
#
include
<
utils/Errors.h
>
#
include
<
binder/IBinder.h
>
#
include
<
utils/String8.h
>
#
include
<
utils/String16.h
>
#
include
<
utils/Vector.h
>
#
include
<
utils/threads.h
>
#
include
<
pthread.h
>
#
include
<
nativehelper/jni.h
>
namespace
android
{
class
AndroidRuntime
{
public:
AndroidRuntime
();
virtual
~AndroidRuntime
();
enum
StartMode {
Zygote,
SystemServer,
Application,
Tool,
};
/*
*
* Register a set of methods in the specified class.
*/
static
int
registerNativeMethods
(JNIEnv* env,
const
char
* className,
const
JNINativeMethod*
gMethods
,
int
numMethods);
/*
*
* Call a class's static main method with the given arguments,
*/
status_t
callMain
(
const
char
* className, jclass clazz,
int
argc,
const
char
*
const
argv[]);
/*
*
* Find a class, with the input either of the form
* "package/class" or "package.class".
*/
static
jclass
findClass
(JNIEnv* env,
const
char
* className);
int
addVmArguments
(
int
argc,
const
char
*
const
argv[]);
void
start
(
const
char
*classname,
const
char
* options);
static
AndroidRuntime*
getRuntime
();
/*
*
* This gets called after the VM has been created, but before we
* run any code. Override it to make any FindClass calls that need
* to use CLASSPATH.
*/
virtual
void
onVmCreated
(JNIEnv* env);
/*
*
* This gets called after the JavaVM has initialized. Override it
* with the system's native entry point.
*/
virtual
void
onStarted
() = 0;
/*
*
* This gets called after the JavaVM has initialized after a Zygote
* fork. Override it to initialize threads, etc. Upon return, the
* correct static main will be invoked.
*/
virtual
void
onZygoteInit
() {};
/*
*
* Called when the Java application exits. The default
* implementation calls exit(code).
*/
virtual
void
onExit
(
int
code);
/*
* create a new thread that is visible from Java
*/
static
android_thread_id_t
createJavaThread
(
const
char
* name,
void
(*start)(
void
*),
void* arg);
/*
* return a pointer to the VM running in this process
*/
static
JavaVM*
getJavaVM
() {
return
mJavaVM
; }
/*
* return a pointer to the JNIEnv pointer for this thread
*/
static
JNIEnv*
getJNIEnv
();
/*
* return a new string corresponding to 'className' with all '.'s replaced by '/'s.
*/
static
char
*
toSlashClassName
(
const
char
* className);
private:
static
int
startReg
(JNIEnv* env);
void
parseExtraOpts
(
char
* extraOptsBuf);
int
startVm
(JavaVM** pJavaVM, JNIEnv** pEnv);
Vector<JavaVMOption>
mOptions
;
/*
JNI JavaVM pointer
*/
static
JavaVM*
mJavaVM
;
/*
* Thread creation helpers.
*/
static
int
javaCreateThreadEtc
(
android_thread_func_t
entryFunction,
void
* userData,
const
char
* threadName,
int32_t
threadPriority,
size_t
threadStackSize,
android_thread_id_t
* threadId);
static
int
javaThreadShell
(
void
* args);
};
}
#
endif
Back
|
FazBrowse Home
|
New Git URL