sudo apt-get install openjdk-7-jdk
Don't install java by manual.
bash: /home/xxx/android-sdk-linux/platform-tools/adb: No such file or directoy
sudo apt-get install lub32stdc++6
~home/xxx/live/jni/
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := live555 #LOVAL_ARM_MODE := arm #LOCAL_PRELINK_MODULE := false #cpp flags? LOCAL_CPPFLAGS := \ -DNULL=0 -DSCOKLEN_T=socklen_t -DNO_SSTREAM -DBSD=1 -DNO_SSTREAM -fexceptions -DANDROID -DXLOCALE_NOT_USED #include header LOCAL_C_INCLUDES := \ $(LOCAL_PATH) \ $(LOCAL_PATH)/BasicUsageEnvironment/include \ $(LOCAL_PATH)/groupsock/include \ $(LOCAL_PATH)/liveMedia/include \ $(LOCAL_PATH)/UsageEnvironment/include #build the needed source file LOCAL_SRC_FILES := \ BasicUsageEnvironment/BasicHashTable.cpp \ BasicUsageEnvironment/BasicTaskScheduler.cpp \ BasicUsageEnvironment/BasicTaskScheduler0.cpp \ BasicUsageEnvironment/BasicUsageEnvironment.cpp \ BasicUsageEnvironment/BasicUsageEnvironment0.cpp \ BasicUsageEnvironment/DelayQueue.cpp \ groupsock/GroupEId.cpp \ groupsock/Groupsock.cpp \ groupsock/GroupsockHelper.cpp \ groupsock/inet.c \ groupsock/IOHandlers.cpp \ groupsock/NetAddress.cpp \ groupsock/NetInterface.cpp \ liveMedia/AC3AudioFileServerMediaSubsession.cpp \ liveMedia/AC3AudioRTPSink.cpp \ liveMedia/AC3AudioRTPSource.cpp \ liveMedia/AC3AudioStreamFramer.cpp \ liveMedia/ADTSAudioFileServerMediaSubsession.cpp \ liveMedia/ADTSAudioFileSource.cpp \ liveMedia/AMRAudioFileServerMediaSubsession.cpp \ liveMedia/AMRAudioFileSink.cpp \ liveMedia/AMRAudioFileSource.cpp \ liveMedia/AMRAudioRTPSink.cpp \ liveMedia/AMRAudioRTPSource.cpp \ liveMedia/AMRAudioSource.cpp \ liveMedia/AudioInputDevice.cpp \ liveMedia/AudioRTPSink.cpp \ liveMedia/AVIFileSink.cpp \ liveMedia/Base64.cpp \ liveMedia/BasicUDPSink.cpp \ liveMedia/BasicUDPSource.cpp \ liveMedia/BitVector.cpp \ liveMedia/ByteStreamFileSource.cpp \ liveMedia/ByteStreamMemoryBufferSource.cpp \ liveMedia/ByteStreamMultiFileSource.cpp \ liveMedia/DarwinInjector.cpp \ liveMedia/DeviceSource.cpp \ liveMedia/DigestAuthentication.cpp \ liveMedia/DVVideoFileServerMediaSubsession.cpp \ liveMedia/DVVideoRTPSink.cpp \ liveMedia/DVVideoRTPSource.cpp \ liveMedia/DVVideoStreamFramer.cpp \ liveMedia/EBMLNumber.cpp \ liveMedia/FileServerMediaSubsession.cpp \ liveMedia/FileSink.cpp \ liveMedia/FramedFileSource.cpp \ liveMedia/FramedFilter.cpp \ liveMedia/FramedSource.cpp \ liveMedia/GSMAudioRTPSink.cpp \ liveMedia/H261VideoRTPSource.cpp \ liveMedia/H263plusVideoFileServerMediaSubsession.cpp \ liveMedia/H263plusVideoRTPSink.cpp \ liveMedia/H263plusVideoRTPSource.cpp \ liveMedia/H263plusVideoStreamFramer.cpp \ liveMedia/H263plusVideoStreamParser.cpp \ liveMedia/H264or5VideoFileSink.cpp \ liveMedia/H264or5VideoRTPSink.cpp \ liveMedia/H264or5VideoStreamDiscreteFramer.cpp \ liveMedia/H264or5VideoStreamFramer.cpp \ liveMedia/H264VideoFileServerMediaSubsession.cpp \ liveMedia/H264VideoFileSink.cpp \ liveMedia/H264VideoRTPSink.cpp \ liveMedia/H264VideoRTPSource.cpp \ liveMedia/H264VideoStreamDiscreteFramer.cpp \ liveMedia/H264VideoStreamFramer.cpp \ liveMedia/H265VideoFileServerMediaSubsession.cpp \ liveMedia/H265VideoFileSink.cpp \ liveMedia/H265VideoRTPSink.cpp \ liveMedia/H265VideoRTPSource.cpp \ liveMedia/H265VideoStreamDiscreteFramer.cpp \ liveMedia/H265VideoStreamFramer.cpp \ liveMedia/InputFile.cpp \ liveMedia/JPEGVideoRTPSink.cpp \ liveMedia/JPEGVideoRTPSource.cpp \ liveMedia/JPEGVideoSource.cpp \ liveMedia/Locale.cpp \ liveMedia/MatroskaDemuxedTrack.cpp \ liveMedia/MatroskaFile.cpp \ liveMedia/MatroskaFileParser.cpp \ liveMedia/MatroskaFileServerDemux.cpp \ liveMedia/MatroskaFileServerMediaSubsession.cpp \ liveMedia/Media.cpp \ liveMedia/MediaSession.cpp \ liveMedia/MediaSink.cpp \ liveMedia/MediaSource.cpp \ liveMedia/MP3ADU.cpp \ liveMedia/MP3ADUdescriptor.cpp \ liveMedia/MP3ADUinterleaving.cpp \ liveMedia/MP3ADURTPSink.cpp \ liveMedia/MP3ADURTPSource.cpp \ liveMedia/MP3ADUTranscoder.cpp \ liveMedia/MP3AudioFileServerMediaSubsession.cpp \ liveMedia/MP3AudioMatroskaFileServerMediaSubsession.cpp \ liveMedia/MP3FileSource.cpp \ liveMedia/MP3Internals.cpp \ liveMedia/MP3InternalsHuffman.cpp \ liveMedia/MP3InternalsHuffmanTable.cpp \ liveMedia/MP3StreamState.cpp \ liveMedia/MP3Transcoder.cpp \ liveMedia/MPEG1or2AudioRTPSink.cpp \ liveMedia/MPEG1or2AudioRTPSource.cpp \ liveMedia/MPEG1or2AudioStreamFramer.cpp \ liveMedia/MPEG1or2Demux.cpp \ liveMedia/MPEG1or2DemuxedElementaryStream.cpp \ liveMedia/MPEG1or2DemuxedServerMediaSubsession.cpp \ liveMedia/MPEG1or2FileServerDemux.cpp \ liveMedia/MPEG1or2VideoFileServerMediaSubsession.cpp \ liveMedia/MPEG1or2VideoRTPSink.cpp \ liveMedia/MPEG1or2VideoRTPSource.cpp \ liveMedia/MPEG1or2VideoStreamDiscreteFramer.cpp \ liveMedia/MPEG1or2VideoStreamFramer.cpp \ liveMedia/MPEG2IndexFromTransportStream.cpp \ liveMedia/MPEG2TransportFileServerMediaSubsession.cpp \ liveMedia/MPEG2TransportStreamFramer.cpp \ liveMedia/MPEG2TransportStreamFromESSource.cpp \ liveMedia/MPEG2TransportStreamFromPESSource.cpp \ liveMedia/MPEG2TransportStreamIndexFile.cpp \ liveMedia/MPEG2TransportStreamMultiplexor.cpp \ liveMedia/MPEG2TransportStreamTrickModeFilter.cpp \ liveMedia/MPEG2TransportUDPServerMediaSubsession.cpp \ liveMedia/MPEG4ESVideoRTPSink.cpp \ liveMedia/MPEG4ESVideoRTPSource.cpp \ liveMedia/MPEG4GenericRTPSink.cpp \ liveMedia/MPEG4GenericRTPSource.cpp \ liveMedia/MPEG4LATMAudioRTPSink.cpp \ liveMedia/MPEG4LATMAudioRTPSource.cpp \ liveMedia/MPEG4VideoFileServerMediaSubsession.cpp \ liveMedia/MPEG4VideoStreamDiscreteFramer.cpp \ liveMedia/MPEG4VideoStreamFramer.cpp \ liveMedia/MPEGVideoStreamFramer.cpp \ liveMedia/MPEGVideoStreamParser.cpp \ liveMedia/MultiFramedRTPSink.cpp \ liveMedia/MultiFramedRTPSource.cpp \ liveMedia/OggDemuxedTrack.cpp \ liveMedia/OggFile.cpp \ liveMedia/OggFileParser.cpp \ liveMedia/OggFileServerDemux.cpp \ liveMedia/OggFileServerMediaSubsession.cpp \ liveMedia/OggFileSink.cpp \ liveMedia/OnDemandServerMediaSubsession.cpp \ liveMedia/ourMD5.cpp \ liveMedia/OutputFile.cpp \ liveMedia/PassiveServerMediaSubsession.cpp \ liveMedia/ProxyServerMediaSession.cpp \ liveMedia/QCELPAudioRTPSource.cpp \ liveMedia/QuickTimeFileSink.cpp \ liveMedia/QuickTimeGenericRTPSource.cpp \ liveMedia/RTCP.cpp \ liveMedia/rtcp_from_spec.c \ liveMedia/RTPInterface.cpp \ liveMedia/RTPSink.cpp \ liveMedia/RTPSource.cpp \ liveMedia/RTSPClient.cpp \ liveMedia/RTSPCommon.cpp \ liveMedia/RTSPRegisterSender.cpp \ liveMedia/RTSPServer.cpp \ liveMedia/RTSPServerSupportingHTTPStreaming.cpp \ liveMedia/ServerMediaSession.cpp \ liveMedia/SimpleRTPSink.cpp \ liveMedia/SimpleRTPSource.cpp \ liveMedia/SIPClient.cpp \ liveMedia/StreamParser.cpp \ liveMedia/StreamReplicator.cpp \ liveMedia/T140TextRTPSink.cpp \ liveMedia/TCPStreamSink.cpp \ liveMedia/TextRTPSink.cpp \ liveMedia/TheoraVideoRTPSink.cpp \ liveMedia/TheoraVideoRTPSource.cpp \ liveMedia/uLawAudioFilter.cpp \ liveMedia/VideoRTPSink.cpp \ liveMedia/VorbisAudioRTPSink.cpp \ liveMedia/VorbisAudioRTPSource.cpp \ liveMedia/VP8VideoRTPSink.cpp \ liveMedia/VP8VideoRTPSource.cpp \ liveMedia/WAVAudioFileServerMediaSubsession.cpp \ liveMedia/WAVAudioFileSource.cpp \ UsageEnvironment/HashTable.cpp \ UsageEnvironment/strDup.cpp \ UsageEnvironment/UsageEnvironment.cpp include $(BUILD_SHARED_LIBRARY)
ndk-build
int swap(int a, int b)
{
int tmp = a;
a = b;
b = tmp;
printf("%d, %d", &a, &b); // 2686752, 2686756
printf("%d, %d", a, b); // 20, 10
}
int main()
{
int a, b;
a = 10;
b = 20;
printf("%d, %d", &a, &b); // 2686788, 2686784
swap(a, b);
printf("%d, %d", a, b); // 10, 20
}
int swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
printf("%d, %d", &a, &b); // 2686752, 2686756
printf("%d, %d", a, b); // 2686788, 2686784
printf("%d, %d", *a, *b); // 20, 10
}
int main()
{
int a, b;
a = 10;
b = 20;
printf("%d, %d", &a, &b); // 2686788, 2686784
swap(&a, &b);
printf("%d, %d", a, b); // 20, 10
}
int swap(int &a, int &b)
{
int tmp = a;
a = b;
b = tmp;
printf("%d, %d", &a, &b); // 2686788, 2686784
printf("%d, %d", *a, *b); // 20, 10
}
int main()
{
int a, b;
a = 10;
b = 20;
printf("%d, %d", &a, &b); // 2686788, 2686784
swap(a, b);
printf("%d, %d", a, b); // 20, 10
}
Note printf("sizeof(char) = %d\n", sizeof(char)); // 1
printf("sizeof(short) = %d\n", sizeof(short)); // 2
printf("sizeof(int) = %d\n", sizeof(int)); // 4
printf("sizeof(long) = %d\n", sizeof(long)); // 4
printf("sizeof(float) = %d\n", sizeof(float)); // 4
printf("sizeof(double) = %d\n", sizeof(double)); // 8
printf("sizeof(char) = %d\n", sizeof(char*)); // 4
printf("sizeof(short) = %d\n", sizeof(short*)); // 4
printf("sizeof(int) = %d\n", sizeof(int*)); // 4
printf("sizeof(long) = %d\n", sizeof(long*)); // 4
printf("sizeof(float) = %d\n", sizeof(float*)); // 4
printf("sizeof(double) = %d\n", sizeof(double*)); // 4
Reason:public partial class Form1 : Form
{
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool AllocConsole();
public Form1(string[] args)
{
AllocConsole();
InitializeComponent();
}
}
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1(args)); // send args to Form1.cs
}
In Form1.cs
public partial class Form1 : Form
{
public Form1(string[] args)
{
foreach (string parameter in args)
System.Console.WriteLine(parameter);
}
}
private void connect() {
String device_URL = "http://tw.yahoo.com/";
HttpURLConnection urlc;
try {
urlc = (HttpURLConnection) new URL(device_URL).openConnection();
urlc.connect();
Log.e("POST", urlc.getResponseMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
private void ignoreNetworkPolicy() {
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } }
public void createConnectThread() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
request();
}
});
thread.start();
}
private void updateUI() {
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
mTextView.setText("123");
}
});
}
System.Console.Write("Showing\n");
System.Console.WriteLine("Showing");
System.IO.Directory.CreateDirectory("Test");
string fileName = "Test\\data.txt"; if(File.Exists(fileName)) File.Create(fileName).Close();
string fileName = "Test\\data.txt";
StreamWriter sw= new StreamWriter(fileName);
sw.Write("First");
sw.WriteLine("Second");
sw.Close();
string fileName = "Test\\data.txt";
StreamReader sr = new StreamReader(fileName);
System.Console.WriteLine("" + sr.Read());